Refactored movement to be more object-oriented