exercises 2.16 - 2.18