SubSystem
SubSystems are used by the MicroKernel to handle something external to it. For example, configuration and type conversion are handled by distinct SubSystems.
They can be easily replaced or extended to fit one needs, it just needs to respect the contract.