Simplify the implementation

Simplify the undo / redo implementation.  No need for complex
continuations here.  Make the code more straight forward and easier to
process