Added abstract class Download, I could have added abstract class DownloadPart but I don't think there is any need of it right now.