exercise 2.21 completed