[UPDATE] Enhanced DownloadUtility class, use of generic  and strategy factory approach