Rework fetcher

No tests, and not tested enough to deploy.  But the design is better.  Too tired for more.