camera refactorings