exercise 2.30 completed