exercise 3.21 done