reordering and shifting