Seeing what can be done to reduce boilerplate.

Quite a lot, it turns out.