exercises 1.17, 1.18, and 1.19