add more validations + handle exception