Refactored the downloading into multiple components, run only on master so downloading is done once and shared.