chapter 3: exercise 28