Passed all tests from ch 3 and 4.1