initial pp constraint

Include @marqh pp-specific constraints code from the v1.7.x branch