EventEmitter with Coffee SubClass Issues

I'm not sure why this doesn't work. Can someone clue me in? I don't see any events get logged, but they do get emitted...well, I think :)

{EventEmitter} = require 'events'

class Base extends EventEmitter

class App extends Base

  constructor: (cb) ->

    console.log 'setup'

    @on 'listener:1', (data) ->
      console.log 'listener 1: ' + data

    @on 'listener:2', (data) ->
      console.log 'listener 2: ' + data

    cb()

class One extends Base

  fire: () ->

    console.log 'fire 1'

    @emit 'listener:1', 1

class Two extends Base

  fire: () ->

    console.log 'fire 2'

    @emit 'listener:2', 2

new App(
  () ->
    setTimeout (->
      one = new One()
      one.fire()
      setTimeout (->
        two = new Two()
        two.fire()
      ), 2000
    ), 2000
)

The output of the program is as expected; Only App sets up listeners on itself, but it never emits anything (only One and Two, which are not sublcasses of App, do so). Perhaps you're looking for something more like the following?

{EventEmitter} = require 'events'

class Base extends EventEmitter
  constructor: ->
    console.log 'setup'

    @on 'listener:1', (data) ->
      console.log 'listener 1: ' + data

    @on 'listener:2', (data) ->
      console.log 'listener 2: ' + data

class App extends Base
  constructor: (cb) ->
    super()
    cb()

class One extends Base
  fire: ->
    console.log 'fire 1'
    @emit 'listener:1', 1

class Two extends Base
  fire: ->
    console.log 'fire 2'
    @emit 'listener:2', 2

new App(
  ->
    setTimeout (->
      one = new One()
      one.fire()
      setTimeout (->
        two = new Two()
        two.fire()
      ), 2000
    ), 2000
)