docs: function (eventName, fn) {
              
              if (typeof fn !== 'function') {
                  throw "IllegalArgumentException: fn must be a Function.";
              }
              
              var fns = this._events[eventName];
              if (fns instanceof Array) {
                  var len = fns.length;
  
                  for (var i = len - 1; i >= 0; i--) {
                      if (fns[i] === fn) {
                          fns.splice(i, 1);
                      }
                  }
  
                  if (   fns.length !== len
                      && fns.length === 0  ) {
                      this._sendActivation('_deactivate', eventName);
                  }
              }
              
              return this;
          }