Have fetchers support rewinding and add builder to encapsulate construction

If you remove the line, the tests will break. It's not superfluous.