exercise 1.7
exercise 1.8