Refactory exception design.