solve exercises 20.16 - 20.19