CPM - almost done