basic structure of the module