finished chapter 8 all tests passing