Throw IAE if provided tuple not singleton

And remove some boilderplate.