exercise 24
exercise 25
exercise 29
exercise 30