Previously the code used Either for error handling, but a boxed std Error is smaller in the happy path and more useful.