This one took a while to do. Lots of sidetracks.