#8: more docstrings and Sphinx docs