croak() instead of die()