added shift_sw()