ServerCallback root = new ServerCallback(reqs.length(), cb);
for (final SimRequest request : reqs) {
SimCallback callback = new PipedCallback(order++, root);
try {
SimCommand command = registry.get(request.name());
String sig = command.signature();
switch (sig.length()) {
case 0:
command.invoke(engine, callback);
break;
case 1: