I think this is my fault and part of addressing #9, we should not throw exceptions but pass them through callbacks.