Add camera and some OOP