add producer consumer