undorecorder action groups now use idisposable