docs: function ()
  		{
  			if (_.isNull(_listeners))
  				return false;
  
  			var isArray = _.isArray(_listeners), listener, len, args=[], _arguments=arguments;			
  
  			var eventObject = function ()
  				{
  					var args = _.toArray(_arguments);
  					var evtObj = this;
  					args.unshift(this);
  					this.index=0;
  					Object.defineProperty(this,'event',{value:self,enumerable:false,writable:false});
  					Object.defineProperty(this,'owner',{value:self.getParent(),enumerable:false,writable:false});
  					Object.defineProperty(this,'evetName',{value:self.getEventName(),enumerable:true,writable:false});
  					Object.defineProperty(this,'stopPropagation',{value:false,enumerable:false});
  					Object.defineProperty(this,'lastListeners',{value:(isArray ? _listeners.length : 1),enumerable:false});
  					Object.defineProperty(this,'listeners',{value:_listeners,enumerable:false,writable:false});
  					Object.defineProperty(this,'arguments',{value:args,enumerable:false,writable:false});
  					if (_config.async)
  						this.next = function () {
  							if (_.isArray(this.listeners))
  							{							
  								if (this.listeners.length == this.lastListeners)
  									this.index++;
  
  								var listener = this.listeners[this.index];
  								var evtObj = this;
  								self.callListener(listener,evtObj);
  							}
  						};
  				},
  				ieo = arguments[0] != null && typeof arguments[0] == 'object'
  									&& arguments[0].stopPropagation!=undefined ? true : false,
  				evtObj = ieo ? arguments[0] : new eventObject;
  
  			if (!isArray)
  			{
  				self.callListener(_listeners,evtObj);
  			} else
  			{
  				if (_listeners.length==2)
  				{
  
  					self.callListener(_listeners[0],evtObj);
  
  					if (evtObj.stopPropagation === true || _config.async === true)
  						return false;
  				
  					listener = _listeners.length == 2 ? _listeners[1] : _listeners[0];
  					self.callListener(listener,evtObj);
  
  				} else {
  					var listeners = _listeners.slice();
  
  					if (_config.async === true)
  						self.callListener(listeners[0],evtObj);
  					else 
  						for (var i = 0, l = listeners.length; i < l; i++)
  						{
  
  							if (evtObj.stopPropagation == true)
  								return true;
  
  							self.callListener(listeners[i],evtObj);
  						}
  				}
  			}
  			return true;
          }