reworked exception chain