add gatherer.request to centralize error handling (fixes #45)