added tests, made adjustments, moved version dependant functions from utilities to version