exercise 3.17