First restructuring into distinct modules for the different classes