Have a working undo/redo