more work on player input, still ugly