change processor return type from Q.Promise to Q.IPromise