refactored moving
merged