Improvements: establish a separate directory for non-temporary non-puzzle files, and reduced initial parsing time by only parsing dates for puzzles (which involves an HTTP GET) on demand and not initially. Also, we don't break on missing solution data but instead try to download that again at a later date.