refactor
movement?