Added CameraFactory; refactored services & factories into a new file
Made code more resilient to bad (and first-run) values