 
     listener.apply this, rest  for listener in listeners
 
-    if oldEvent?
-      @event = oldEvent
-
-    else
-      delete @event
+    if oldEvent? then @event = oldEvent else delete @event
 
     return this
 


    return listeners

  removeAllListeners = (node, edges, id, i = 0) ->
    edge = edges[i]

    nextNode = node[edge]

    if nextNode?
      return removeAllListeners nextNode, edges, id, i + 1

    if id?
      straight = node[listenerKey]
      if straight?
        node[listenerKey] = (listener for listener in straight \
                             when listener isnt id)
    else
      node[listenerKey] = []

    return

  emit: (eventName, rest...) ->

    if @hasOwnProperty 'event' then oldEvent = @event

    @event = eventName


  # INSTANCE METHODS
  # to enable anInstance.on or anInstance.emit (anInstance being new ClassName)

  constructor: (options = {}) ->
    { maxListeners } = options
    @_e             = {}
    @_maxListeners  = if maxListeners > 0 then maxListeners else 10
