Updated part 1 and started part 2