copy with unions