The most important MAPI modules and their dependencies. The core module allows the definition of available data types in the system. Two main branches of dependencies correspond to Tools (software components that consume and/or produce data) and handling of a particular data type (Data). The Execution Module combines these two branches by sending the data to the tools for execution using the information stored in the ToolLocation module. The modules for NameSpaces and Users are not shown for simplicity since they can be used with all the other modules.