move cmp to macroses