add cpv function