Separated the responsibilities of executeDownload