further UndoRecorder tweaks
added some disposable helper methods