@SuppressWarnings("unchecked")
 protected void fillMissingValues(
     Map<String, SeriesData<X, Y>> ret, List<Long> retTimes, int stepLen) {
   for (SeriesData<X, Y> nextValues : ret.values()) {
     Map<X, Y> valueMap = nextValues.pointsAsMap();
     List<Long> addX = new ArrayList<>();
     for (Long nextStep : retTimes) {
       if (!valueMap.containsKey(nextStep)) {
         addX.add(nextStep);
       }
     }
     Object zero = 0;
     for (Long nextAdd : addX) {
       for (int i = 0; i < nextValues.values.size(); i++) {
         if (nextValues.values.get(i).x.compareTo((X) nextAdd) > 0) {
           Point<X, Y> toAdd = new Point<>();
           toAdd.x = (X) nextAdd;
           toAdd.y = (Y) zero;
           nextValues.values.add(i, toAdd);
           break;
         }
       }
     }
   }
 }