remove event emitter inheritance
refactor