return the promise object instead of the deferred itself