some progress on undo