exercise 2.20 completed