refactors on versionable, better handling, simpler code, a bit faster