ModuleManager handles the interactions between the various modules and between modules and the user. Essentially, it will work as a wrapper for the modular system, allowing addition and removal of modules by the user and facilitating their interactions correctly. R391