Maybe it's worth having an ``IllegalArgumentException`` thrown at the very beginning? I like this, but I suspect others in the team may find it too noisy.