Completed CCPM re-write