made `DownloadService` more clean, especially the `downloadFile` method