exercise 2.16 completed