using domain to handle business exception