Extracted the DownloadPhases into seperate classes