add producerconsumer