Refactored exception bubbling to be a little cleaner