docs: function (target, methodName, args) {
      return perform(target, function (target) {
          return target.apply(methodName, args);
      }, function (target) {
          return target[methodName].apply(target, args);
      });
  }