Further work on saving and undo/redo