camera class - unfinished