product functions