Restructured for PyPI upload