deal with swap and undo