Part 5 is still in the works in case anyone is wondering. I didn't finish yet because I was on vacation and the server is down the whole day today anyways, so I'll hold on to it for next Sunday. To make up for it, I will extend it a bit beyond what I originally planned, update all previous parts for 100016 and upload all code to github so you can compare results after finishing a part.