modified: product function.