exercise 1.31: product