Part 5 done and tested. Matches solution nicely.