emitter indirection give us more flexibility