protected virtual void OnDownloadFailed(DownloadFailedEventArgs e)
 {
     var ev = DownloadFailed;
     if (ev != null)
         ev(this, e);
 }