Make fetcher more generic