private function addRange(Range $range)
 {
     $ranges = $this->ranges;
     foreach ($ranges as $band) {
         if ($range->overlaps($band)) {
             throw new \OutOfBoundsException("Ranges cannot overlap, ({$band}) ({$range})");
         }
     }
     $ranges[] = $range;
     @usort($ranges, array($this, 'sort'));
     $this->ranges = $ranges;
 }