exercises 2.29 through 32