Lots of changes and suggestions for Ian to review.

Requires data/broken_images.json , I will email it.