new packages for exceptions
refactor new package