exercise 7.6.1
exercise 7.6.2
exercise 7.6.3
exercise 7.6.4