Better undo (should work with mutiple operations.