solve exercises 15.17 - 15.23