Completed part 1 and part of part 2