Implementation of CPM