at least one sub-module constructor should defined to build a module