Refactoring of move (still broken)