major renderer refactoring