reduce diff
typo; free unions