add partitionDataRanges()