Player movement and early refactoring