move camera to class, implement trackball