public async Task<bool> DownloadFromUrlAsync(string url, string targetFile) {
			HttpClient httpClient = new HttpClient();
			HttpResponseMessage response = await httpClient.GetAsync(url);
			if (response.IsSuccessStatusCode) {
				filesystem.HttpContentToFile(response.Content, targetFile);
				return true;
			}
			return false;
		}
        public async Task <bool> DownloadFromUrlAsync(string url, string targetFile, string authentication)
        {
            HttpClient httpClient = new HttpClient();

            if (authentication != null)
            {
                httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", authentication);
            }
            HttpResponseMessage response = await httpClient.GetAsync(url);

            if (response.IsSuccessStatusCode)
            {
                string targetDir = targetFile.Substring(0, targetFile.LastIndexOf('/'));
                Directory.CreateDirectory(targetDir);
                await filesystem.HttpContentToFile(response.Content, targetFile);

                return(true);
            }
            return(false);
        }