added sphinx documentation generation