undo/redo new work flow