code: function(eventName, options) {
      if (!this.__eventListeners) {
        this.__eventListeners = { }
      }
      var listenersForEvent = this.__eventListeners[eventName];
      if (!listenersForEvent) return;
      for (var i = 0, len = listenersForEvent.length; i < len; i++) {
        // avoiding try/catch for perf. reasons
        listenersForEvent[i](options || { });
      }
    }
docs: Fires event with an optional options object
  @method fire
  @param {String} eventName
  @param {Object} [options]