Finished through Exercise 2.2