add tests; use fetcher