I think for backwards compatibility reasons we'll need to leave at least the arguments that were there originally, despite the fact that I agree with your division. And while we're doing that we may as well just have all of them there. It looks like it'd clean up tests a tiny bit too, where we construct fully ready errors.

I started merging, so I can do it.