better organizing exceptions