rearrange requires