part 3 functional!
Answered a few more questions in part2