slightly modifies exception handling behavior for cleanliness