added camera class and template class thingy