MModules are DLLs which can be loaded into Mahogany at run time. This allows us to keep the main executable small and put all additional non-core functionality into add-on modules. The general structure of a module is very simple and can be understood by looking at Mdummy.cpp. It needs to contain a small number of functions with extern ``C'' linkage which are used to obtain information from the module and initialise it. Then, from the initialisation function, it can do anything it wants.