use duplex emitter instead