Completely refactored the Camera state and the classes around it