support various rotation order