docs: function ServiceLoader(type, options){
    var loadCallbacks = [];
    this.name = type;
    this.cid = $.uniqueId('ServiceLoader');
    this.isHydrated = false;
    this.isComponent = true;
    this.isModel = true;
    this.isLazyComponent = true;
    this.attributes = {};
    this.consumers = [];
    this.set = this.on = this.off = function(){
      return 1;
    };
    this.get = function(path){
      return (path) ? undefined : this;
    };
    this.hydrate = function(service){
      SERVICES[this.name] = service;
      this._component = service;
      _.each(this.consumers, function(consumer){
        var component = consumer.component,
            key = consumer.key;
        if(component.attributes && component.set){ component.set(key, service); }
        if(component.services){ component.services[key] = service; }
        if(component.defaults){ component.defaults[key] = service; }
      });
      service.consumers = this.consumers;
  
      // Call all of our onLoad callbacks
      _.each(loadCallbacks, (cb)=>{ cb(service); });
      delete this.loadCallbacks;
    };
    this.onLoad = function(cb){
      loadCallbacks.push(cb);
    };
  }