made toTask and forwardTo in PromiseExtensions more flexible