split up exception handling