Once again, throw an argument exception rather than complicate logic