Completed Undo, will update redo tomorrow.
Reverse logic is painful. To reserve the reverse logic is much more painful