added input, camera movement, and GUI