@kris @stuk, do either of you have a feeling on:

1) requiring a promise from the consumer
3) having one method ```add``` that accepts two different method signatures
2) having two methods ```add``` ```addPromise```

As much as I like the idea of being very clear you're in the "promised land" when you start using the UndoManager,   it is kind of a pain in simple examples to now rely on promises, have to build a promise + an argument array object. So I'm still in favor of option 1 myself but wouldn't mind some other thoughts.

Bear in mind, I think promises will be a key part of the eventual grouping of undo operations into "one" so tricking people into not knowing about the promises if the abstraction will leak soon enough anyway.