static L group(Class theClass, L<S> fields, L data) {
  new L l;
  for (int i = 0; i < l(data); i += l(fields)) {
    O o = newObject(theClass);
    for (int j = 0; j < min(l(fields), l(data)-i); j++) {
      S field = fields.get(j);
      O item = data.get(i+j);
      setOpt(o, field, item);
    }
    l.add(o);
  }
  ret l;
}