added weighted version of union. benchmark results look bad though. case too small?