Semi reorganized as a proper Python package