Extrapolated errors into separate module
More cleanup, and pulled out usage affordances.