reorganization into modules