Move generic PropertyConstraint into own file