Thinking about an approach to do-undo-redo

Thinking about an approach to do-undo-redo