updated subproblem protocol to support more specific constraints