code: function invoke(moduleName, method, extraArgs, callback) {
      var module = self.modules[moduleName];
      var invoke = module[method];
      if (invoke) {
        if (invoke.length === (1 + extraArgs.length)) {
          return invoke.apply(module, extraArgs.concat([callback]));
        } else if (invoke.length === extraArgs.length) {
          return setImmediate(function () {
            try {
              invoke.apply(module, extraArgs);
            } catch (e) {
              return callback(e);
            }
            return callback(null);
          });
        } else {
          return callback(moduleName + ' module: your ' + method + ' method must take ' + extraArgs.length + ' arguments, plus an optional callback.');
        }
      } else {
        return setImmediate(callback);
      }
    }
docs: Generic helper for call* methods