Refactoring movement methods and adding new tests