factored out the downloaders to their own modules