Added parameters to consumer
Added producer and consumer impl