check args and croak