completed exercises 16 - 20