redo&undo can work well now