Completed part 2, working on parts 3 and 4