added modes and camera movement