usage
MutableConsumer
MutableProducer