Note to self:  need constructor logic (i.e. startup/recovery) to 1) discover already downloaded shards and 2) recover / check for consistency and purge any inconsistent shards