updated produces/consumes