exit 1 if failure