produce() extended