DotField pattern

I only just realised I never actually submitted a pull request for this.

Submitting to keep it all stored centrally.