use domain to handle error