Part1 and Part2 done