rotate + partitioning