Refactoring - mainly Downloader and Listener classes.