exercises 2.07 through 2.10