Producer, Consumer and OPtional