cleaned up some camera code and added some functionality for first-person view