Movement refactor