part 2 & 3 done.