Move to EventEmitter design