movement refactor