Error handling is pretty solid now.  Just need to go through the
wrappers and ensure they are do a good job of passing meaningful errors.