refactored provider into provider(interface), meta provider and downloader