static createFromModels(Models, objModelData, callback) {

    if (objModelData instanceof Array) {
      async.series(
        objModelData.map(objModelData => callback => this.createFromModels(Models, objModelData, callback)),
        (err, results) => {
          results = (results || []).reduce((results, res) => {
            return results.concat(res);
          }, []);
          callback(err || null, results);
        }
      );
      return;
    }

    async.parallel(
      Models
        .filter(Model => objModelData[Model.name] && objModelData[Model.name].length)
        .map(Model => callback => new this(Model).create(objModelData[Model.name], callback)),
      (err, results) => callback(err || null, results)
    );

  }
Creates new factories from a supplied array of Models, loading in data keyed by Model name
@param {Array} Models Array of model constructors you wish to reference
@param {Object} objModelData Keys are model names, values are arrays of model data you wish to create
@param {Function} callback What to execute upon completion