Used in most places to break a module into more orthogonal components. Some of this data needs to be serialized into the interface files.