//but more complex input polices can have 0 or more arguments.
int policyArgCount = 0;
//create an application for each input policy
for(int i=0; i < args.length; i++) {
InputPolicy inputPolicy = inputPolicies[i];
int nArgs = inputPolicy.getNArguments();
SourceModel.Expr[] inputPolicyParts = new SourceModel.Expr[inputPolicy.getNArguments() + 1];
inputPolicyParts[0] = inputPolicy.getMarshaler();
//this loop is from 1 as the first element is always the inputPolicy itself, and then any arguments
for (int j = 1; j <= nArgs; ++j) {
String argName = "arg_" + (policyArgCount);
ioPolicyParams.add(SourceModel.Parameter.make(argName, false));