Part 1,2,3 almost done