Multiple improvements to CPS algorithm.