some more work on exception handling