Rebase + squash + fixup of #814.

__init__ methods aren't meant to have docstrings