code: function(opts) {
  
  
          var o = (L.isObject(opts)) ? opts : {};
  
          this._yuievt = this._yuievt || {
  
              id: Y.guid(),
  
              events: {},
  
              targets: {},
  
              config: o,
  
              chain: ('chain' in o) ? o.chain : Y.config.chain,
  
              bubbling: false,
  
              defaults: {
                  context: o.context || this, 
                  host: this,
                  emitFacade: o.emitFacade,
                  fireOnce: o.fireOnce,
                  queuable: o.queuable,
                  monitored: o.monitored,
                  broadcast: o.broadcast,
                  defaultTargetOnly: o.defaultTargetOnly,
                  bubbles: ('bubbles' in o) ? o.bubbles : true
              }
          };
  
      }
docs: EventTarget provides the implementation for any object to
  publish, subscribe and fire to custom events, and also
  alows other EventTargets to target the object with events
  sourced from the other object.
  EventTarget is designed to be used with Y.augment to wrap
  EventCustom in an interface that allows events to be listened to
  and fired by name.  This makes it possible for implementing code to
  subscribe to an event that either has not been created yet, or will
  not be created at all.
  @class EventTarget
  @param opts a configuration object
  @config emitFacade {boolean} if true, all events will emit event
  facade payloads by default (default false)
  @config prefix {string} the prefix to apply to non-prefixed event names
  @config chain {boolean} if true, on/after/detach return the host to allow
  chaining, otherwise they return an EventHandle (default false)