public Duration findGap(Interval interval, Duration gap) {
        boolean found = false;

        int start = overlapStart(interval);

        Duration currentGap = null;
        while (start < size() - 2 && !found) {
            currentGap = get(start).gap(get(start + 1)).toDuration();

            if (currentGap.compareTo(gap) >= 0) {
                found = true;
            } else {
                start++;
            }
        }

        if (!found) {
            return null;
        }

        return currentGap;
    }