up to exercise 3.26
up to exercise 3.37
up to exercise 3.48