code: function(config, opt) {
  
              var me = this,
                  configvar = {},
                  callback,
                  init;
  
              if (opt) {
                  init = (opt.init || undefined);
                  callback = (opt.callback || undefined);
              } else {
                  opt = {};
              }
  
              configvar.action = "install";
              configvar.isinstalled = false;
              configvar.config = config,
              configvar.global = ((init && 'global' in init) ? init.global : false);
              configvar.debug = opt.debug;
              configvar.depth = opt.depth;
  
              if (init) {
                  this.init(init);
              }
  
              _packageProcess(configvar, function() {
                  if (this.data && _.isArray(this.data) && this.data.length > 0) {
                      me.spawn(this.data, init, function(){
                          if (callback) {
                              callback.call(me);
                          }
                      });
                  } else {
                      if (callback) {
                          callback.call(me);
                      }
  
                  }
              });
          }
docs: TODO unify to generic - the configuration passed to the install/uninstall 
  Install packages
  
  @param config {Array} The configuration for the install
  name        {String}    The package name
  admin       {Boolean}   Get admin prompt (default to true)
  spawnopt    {Object}    {cwd: '.'} [optional] (see child_process spawn docs)
  
  e.g. [{
  admin: false,
  name: "test"
  }]
  
  @param opt The optional configuration
  init The initial settings
  global  {Boolean} specify if the given packages are global or not
  log     {Boolean} specify if to set the log to off or on optional values [true/false]
  
  callback The callback functionality