exercise 15
exercise 16 finish
exercise 17 finish