refactor move