optimize EventEmitter