customized for FirstPersonControls