reorganized the module classes