exercise 2.17 completed