     splits = []
 
     for value in cachedValues
-      newFilter = addToFilter(filter, timeAttribute, createFilter(value, splitOp))
+      newFilter = addToFilter(filter, timeAttribute, driverUtil.filterFromSplit(splitOp, value))
       ret = getKnownTreeHelper(condensedQuery, newFilter, level + 1, value)
       ret.prop[splitOp.name] = value
       splits.push ret

    if node.splits?
      splitOp = condensedQuery[level + 1].split
      for split in node.splits
        newFilter = addToFilter(filter, @timeAttribute, createFilter(split.prop[splitOp.name], splitOp))
        @_filterPutHelper(condensedQuery, split, newFilter, level + 1)
    return


    when 'match'     then "F:#{filter.attribute}:#{filter.expression}"
    when 'within'    then "W:#{filter.attribute}:#{filter.range[0].valueOf()}:#{filter.range[1].valueOf()}"
    when 'not'       then "N(#{filterToHashHelper(filter.filter)})"
    when 'and'       then "A(#{filter.filters.map(filterToHashHelper).join(')(')})"
    when 'or'        then "O(#{filter.filters.map(filterToHashHelper).join(')(')})"
    else throw new Error("unsupported filter type")

filterToHash = (filter) ->
