Part 1 done fully