title: Strapi: where global models comes from?
body: <p>For example, I've created content type "Item" via admin panel. In <code>/api/item/services/Item.js</code> I see code like </p>
  
  <pre><code> fetchAll: (params) =&gt; {
  const convertedParams = strapi.utils.models.convertParams('item', params);
  
  return Item
    .find()
    .where(convertedParams.where)
    .sort(convertedParams.sort)
    .skip(convertedParams.start)
    .limit(convertedParams.limit)
    .populate(_.keys(_.groupBy(_.reject(strapi.models.item.associations, {autoPopulate: false}), 'alias')).join(' '));
  },
  </code></pre>
  
  <p>but <code>Item</code> is not imported, so it is global.</p>
  
  <ol>
  <li>I'd like to know in what moment this global <code>Item</code> is created?</li>
  <li>What is the difference between global <code>Item</code> and <code>strapi.models.item</code>?</li>
  <li>I'm making GraphQL support via middleware, so I'll put model in context object. What's the best way to use <code>item</code> model: like service, <code>strapi.models.item</code> or <code>Item</code>? </li>
  </ol>
  
  <p>Thank you.</p>
  
  <p>PS: if one of the authors of Strapi will read this, could you please tell why are you using global objects so heavily?</p>