exercise 2.77 done