based on CM