exercise 3.58 done