hiding the details of working with DownloadService behind an AsyncTask-like interface (DownloadTask)