Completing the exception changes. Still fragile on the unit tests. going to continue on linux to fix some obvious bugs.