Revised Exception hierarchy
More refactoring and renaming.