added versionable object logic