public String printEstimates(ArrayList<VariableInfo> items) {
    StringBuilder sb = new StringBuilder();
    Formatter f = new Formatter(sb);
    double[] fl = model.getFactorLoading();
    double[] er = model.getErrorVariance();
    //        f.format("%50s", "       CONFIRMATORY FACTOR ANALYSIS RESULTS       ");
    f.format("%n");
    f.format("%-50s", model.getName());
    f.format("%n");
    f.format("%50s", "==================================================");
    f.format("%n");
    f.format("%10s", "     ");
    f.format("%5s", "");
    f.format("%10s", "Factor ");
    f.format("%5s", "");
    f.format("%10s", " Error");
    f.format("%n");
    f.format("%10s", " Item");
    f.format("%5s", "");
    f.format("%10s", "Loading");
    f.format("%5s", "");
    f.format("%10s", "Variance");
    f.format("%n");
    f.format("%50s", "--------------------------------------------------");
    f.format("%n");

    for (int i = 0; i < items.size(); i++) {
      f.format("%10s", items.get(i));
      f.format("%5s", "");
      f.format("% 10.4f", fl[i]);
      f.format("%5s", "");
      f.format("% 10.4f", er[i]);
      f.format("%n");
    }
    f.format("%50s", "--------------------------------------------------");
    f.format("%n");
    return f.toString();
  }