Added a top-level exception class