Completed most of part 2