Changed returned promise internally to a single PromiseResolver
Implemented support for promise cancellation