Updated Part 1,2 and 3.