union and variant cleanup