camera refactoring & orbit controller