refactoring mover forwards and back