Fixed up exception handling and propagation