starting to share code between the * and Constraint categories