Add a preconditions module, and refactor errors