now supporting empty time_ranges