@Override
  public void visitPoint(Point point) {
    AbtestReport report = findOrCreateAbtestReport(m_runId);

    Variation variation = report.findOrCreateVariation(m_variation);

    Goal goal = variation.findOrCreateGoal(m_id);

    int count = goal.getCount() + point.getCount();
    double sum = goal.getSum() + point.getSum();

    goal.setType(m_type);
    goal.setCount(count);
    goal.setSum(sum);
    // avg?
  }
  public Map<Integer, AbtestReport> getReportMap() {
    for (AbtestReport report : m_reportMap.values()) {
      HashMap<String, String> map = m_metrics.get(report.getRunId());

      for (Entry<String, String> entry : map.entrySet()) {
        String metric = entry.getKey();
        String value = entry.getValue();

        for (Variation variation : report.getVariations().values()) {
          Goal goal = variation.findOrCreateGoal(metric);

          goal.setType(value);
        }

        Goal goal = new Goal();

        goal.setName(metric);
        report.getGoals().add(goal);
      }
    }

    return m_reportMap;
  }