$q.all(promises)
              .then(function(results){
                deferred.resolve(results);
              })
              .catch(function(reason){