Separaration of concerns: added camera controllers to handle camera movement.