Lots of tweaks to get exceptions to work right, needs some more