I haven't thought about this too much, but is there a case where the promise knows more about the operation than the initial add? It seems strange that the undo label can change at some point in the future.