factored out undo message