more abstractions. input works, although a shape renderer somehow screws up the world rendering. will need to use the sprite batch.