Wrote code for parts 2-5 but still needs to be tested in main classes