add exception return