working on cmp
cmp finished needs testing
cmp finished needs testing