update with unions