reordering and dipacher