don't just blow up with invalid arguments - print out a more useful error message