don't use the event emitter