preserve variant order so control is first