Introducing a fully functional undo/redo for #39