split TypeConstraints into 2 classes, one for core, one for Profile