partial undo support