If the user didn't want the deferred in the pool, and assuming the Deferred has a single purpose, then wouldn't 'removing' the deferred from the pool be the same thing as canceling the deferred? You wouldn't need a remove method as the deferred would be done as soon as it is canceled.