don't make assumptions about user input.
renamed keycodes to buttons