vjr sourcelight refactoring, incomplete