Very simple undo / redo manager