refactored exception class... -sai