introduced 3-way partitioning