Implemented camera
Refactored