Exercise 1 and 2 are mostly complete