refactor Exceptions package