added subproblem protocol description and support for multiple subproblems