exercise 2.58a