Added Sphinx documentation, unit tests, and began modifying extension code