Many changes, module hierarchy, imports, documentation, etc.