added factory for file_downloader
refactor of file_downloader, spec made"