exercise 2.58 completed