code: function (type, fn, context) {
              var self = this;
              Utils.batchForType(function (type, fn, context) {
                  var cfg = Utils.normalizeParam(type, fn, context), customEvents, customEvent;
                  type = cfg.type;
                  if (type) {
                      customEvent = self.getCustomEventObservable(type, true);
                      if (customEvent) {
                          customEvent.detach(cfg);
                      }
                  } else {
                      customEvents = self.getCustomEvents();
                      util.each(customEvents, function (customEvent) {
                          customEvent.detach(cfg);
                      });
                  }
              }, 0, type, fn, context);
              return self;    // chain
          }
docs: chain 
  Detach one or more listeners from the specified event
  @method detach
  @param {String} type The name of the event
  @param {Function} [fn] The subscribed function to un-subscribe. if not supplied, all observers will be removed.
  @param {Object} [context] The custom object passed to subscribe.
  @chainable