Basic downloader logics.
Added blacklist related logics to downloader.
Added error handling. Added comments to code and tests.