This implementation is not really spec compliant as rand() does not guarantee TMP_MAX different outputs + seeding
As the number of libraries is increasing, root directory starts to expand. This adds better organization for libraries