rearrange initialization