even better exception capturing