undoable block movement