implemented undo to the multi-modify, no apparent bugs