cameras refactored