vjr major object refactoring, incomplete