code: function(action, channel, accountInfo, auth, next) {
      var self = this,
        config = this.getConfig();
  
      if (!next && 'function' === typeof auth) {
        next = auth;
  
      } else {
        if (self.isOAuth()) {
          if (!auth.oauth) {
            auth.oauth = {};
          }
          _.each(config.oauth, function(value, key) {
            auth.oauth[key] = value;
          });
        }
        accountInfo._setupAuth = auth;
      }
  
      if (this.actions[action] && this.actions[action].setup) {
        this.actions[action].setup(channel, accountInfo, function(err) {
          if (err) {
            self.log(err, channel, 'error');
          }
          next(err);
        });
      } else {
        next(false);
      }
    }
docs: /*
  Runs the setup function for the pod action, if one exists
  
  @todo separate setup scope for pod and channel action.  A pod setup for example
  might install some default channels into the account for immediate use (such as
  autoInstall does)
  
  @param action {String} Configured pod Action
  @param channel {Channel} initialized channel
  @param accountInfo {Object} AccountInfo Structure for Authenticated Account
  @paran next {Function} callback