exercises 2.33 through 2.35