more updates, some restructuring and submitted to pypi