again callback shouldn't be optional.
it should be the last thing called.

so 
```
...
  self.emit(blah)
  return cb(stuff)
```