docs: function (evt, callback) {
      if (!evt || !_.isObject(evt)) {
        var err = new Error('Please pass a valid event!');
        debug(err);
        throw err;
      }
  
      if (!callback || !_.isFunction(callback)) {
        var err = new Error('Please pass a valid callback!');
        debug(err);
        throw err;
      }
  
      var target = this.getTargetInformation(evt);
  
      var sagas = this.structureSearcher.getSagas(target);
  
      if (!sagas) {
        debug('no saga found for ' + target.name);
        return callback(null, []);
      }
  
      var errs = [];
      var sagaModels = [];
      async.each(sagas, function (saga, callback) {
        saga.handle(evt, function (err, sagaModel) {
          if (err) {
            debug(err);
            errs.push(err);
          }
  
          if (sagaModel) {
            sagaModels.push(sagaModel);
          }
          callback(null);
        });
      }, function () {
        if (errs.length === 0) {
          errs = null;
        }
        callback(errs, sagaModels);
      });
    }