refactored freeCamera and followCamera to subclass targetCamera