refactoring camera features