abstracting cpt creation