code: function(config) {
              this._plugins = this._plugins || {};
  
              // Class Configuration
              var classes = (this._getClasses) ? this._getClasses() : [this.constructor],
                  plug = [],
                  unplug = {},
                  constructor, i, classPlug, classUnplug, pluginClassName;
  
              //TODO: Room for optimization. Can we apply statically/unplug in same pass?
              for (i = classes.length - 1; i >= 0; i--) {
                  constructor = classes[i];
  
                  classUnplug = constructor._UNPLUG;
                  if (classUnplug) {
                      // subclasses over-write
                      Y.mix(unplug, classUnplug, true);
                  }
  
                  classPlug = constructor._PLUG;
                  if (classPlug) {
                      // subclasses over-write
                      Y.mix(plug, classPlug, true);
                  }
              }
      
              for (pluginClassName in plug) {
                  if (plug.hasOwnProperty(pluginClassName)) {
                      if (!unplug[pluginClassName]) {
                          this.plug(plug[pluginClassName]);
                      }
                  }
              }
      
              // User Configuration
              if (config && config.plugins) {
                  this.plug(config.plugins);
              }
          }
docs: Initializes static plugins registered on the host (using the
  Base.plug static method) and any plugins passed to the
  instance through the "plugins" configuration property.
  
  @method _initPlugins
  @param {Config} config The configuration object with property name/value pairs.
  @private