Reworked movement to cleaner and simpler code