versionlock works, refactored