added EventEmitter