exercise 3.1
exercise 3.2
exercise 3.3
exercise 3.4