fixed undo redo