         on: (name, callback, context) ->
             return this if (!eventsApi(this, 'on', name, [callback, context]) || !callback)
 
-            this._events || (this._events = {});
-            events = this._events[name] || (this._events[name] = []);
+            this._listeners || (this._listeners = {});
+            events = this._listeners[name] || (this._listeners[name] = []);
             events.push
                 callback: callback
                 context: context


            delegateEvents(this.delegators, args) if this.delegators and this.delegators.size() > 0
            
            return this if not this._events

            return this if (!eventsApi(this, 'trigger', name, args))

            events = this._events[name]
            allEvents = this._events.all

            triggerEvents(events, args) if (events)
            triggerEvents(allEvents, args) if (allEvents)
            
            this


        delegate: ->
            delegateEvents(this.delegators, arguments) if this.delegators and this.delegators.size() > 0

            return this if (!this._listeners)

            event = arguments[arguments.length - 1]
            event.delegator = this
            
            listeners = this._listeners[event.name]
            listeners_for_all = this._listeners.all

            triggerEvents(listeners, arguments) if (listeners)
            triggerEvents(listeners_for_all, arguments) if (listeners_for_all)
            
            this

