docs: function (trigger, callback) {
      var self = this;
      var id = self.nextId++;
      self.listeners[id] = {trigger: EJSON.clone(trigger), callback: callback};
      if (self.factName && Package.facts) {
        Package.facts.Facts.incrementServerFact(
          self.factPackage, self.factName, 1);
      }
      return {
        stop: function () {
          if (self.factName && Package.facts) {
            Package.facts.Facts.incrementServerFact(
              self.factPackage, self.factName, -1);
          }
          delete self.listeners[id];
        }
      };
    }