should it be `deferred.reject().promise()` ?