Event emitter, once again.

please review properly.