update cp logic