static refinement, all functions that are used in other classes and might need refinement
later were changed to non-static

also, all functions changed to public because they are used in tests in a seperate classes