here comes CMP
tutorial