code: function (plugin) {
                  var self = this;
                  if (typeof plugin === 'function') {
                      var Plugin = plugin;
                      plugin = new Plugin();
                  }    // initialize plugin
                       //noinspection JSUnresolvedVariable
                  // initialize plugin
                  //noinspection JSUnresolvedVariable
                  if (plugin.pluginInitializer) {
                      // noinspection JSUnresolvedFunction
                      plugin.pluginInitializer(self);
                  }
                  self.get('plugins').push(plugin);
                  return self;
              }
docs: plugin a new plugins to current instance
  @param {Function|Object} plugin
  @chainable