Added Camera and listeners

Big deal this commit ^_^. The camera has been added. While it still
could use improvements it looks shanzy!
Created camera and optimised code