ICM ships with a default CMM. However, the ICM API is designed to enable CMM vendors to design their CMMs to be ICM-compliant. An ICM-compliant CMM could be installed into the OS and available for applications to use instead of, or in addition to, the default CMM. Which CMM gets used to create any given transform is determined by availability, the source profile, or the application that is calling the ICM functions.