private void move() {
            if(endValuesIndex >= values.size()) {
                endValuesIndex++;
                return;
            }
            
             // select next
            // move start to next stop of values change
            int compare = values.get(startValuesIndex).getEnd().compareTo(
                    metric.removes(values.get(endValuesIndex).getEnd(), allocationDuration)
                    );
            if (compare <= 0) {
                // next stop of start is closer to current start than next stop of end
                
                startPoint = values.get(startValuesIndex).getEnd();
                endPoint = metric.add(startPoint, allocationDuration);
                startValuesIndex++;
                
                if (compare == 0) {
                    endValuesIndex++;
                }
            } else {
                endPoint = values.get(endValuesIndex).getEnd() ;
                startPoint = metric.removes(endPoint, allocationDuration);
                endValuesIndex++;
            }
        }