abstracting CPTs - untested