class CallableReportDownloader implements Callable<File> {

  @Override
  public File call() throws ReportProcessingException {
    ReportDownloadResponse reportDownloadResponse = getReportDownloadResponse();

    InputStream inputStream = reportDownloadResponse.getInputStream();
    return handleReportStreamResult(inputStream);
  }

  public  CallableReportDownloader(
      ImmutableAdWordsSession session, ReportDefinition reportDefinition);

}