Downloader: Refactor to encapsulate single download operation