call EventEmitter constructor, allow using without new, refactor