class ImageDownloadTaskManager extends TaskManager<DownloadResponse> {

    @Override
    void execute() {
        if (mDownloadTasks.isEmpty()) {
            mImageTaskManagerListener.onSuccess(mResults);
        }

        for (final Entry<HttpUriRequest, DownloadTask> entry : mDownloadTasks.entrySet()) {
            final HttpUriRequest httpUriRequest = entry.getKey();
            final DownloadTask downloadTask = entry.getValue();

            try {
                AsyncTasks.safeExecuteOnExecutor(downloadTask, httpUriRequest);
            } catch (Exception e) {
                MoPubLog.d("Failed to download image", e);

                mImageTaskManagerListener.onFail();
            }
        }
    }

      ImageDownloadTaskManager(@NonNull final List<String> urls,
                             @NonNull final TaskManagerListener<DownloadResponse> imageTaskManagerListener,
                             final int requestedWidth);

}