docs: function (id) {
              var uninit = [], c = 0, ul, //array of components to init
              i = 0, l, comps, comp;
  
              //add multiple arguments
              if (arguments.length > 1) {
                  l = arguments.length;
                  for (; i < l; i++) {
                      uninit.push(arguments[i]);
                  }
                  //split components if contains comma
              } else if (id.indexOf(',') !== -1) {
                  comps = id.split(rlist);
                  l = comps.length;
                  for (; i < l; i++) {
                      uninit.push(comps[i]);
                  }
                  //single component passed
              } else {
                  uninit.push(id);
              }
  
              //extend the components
              ul = uninit.length;
              for (; c < ul; c++) {
                  if (this.__c[uninit[c]] == true)
                      continue
                  this.__c[uninit[c]] = true
                  comp = components[uninit[c]];
                  this.extend(comp);
                  //if constructor, call it
                  if (comp && "init" in comp) {
                      comp.init.call(this);
                  }
              }
  
              this.trigger("NewComponent", uninit);
              return this;
          }