Overhauled to a CameraConfig object for configuration (untested)