introduce Fetcher interface