WeightedUnion() mostly fixed. Order is still not preserved, but is not required. It would just make debugging easier. The bug was a pointer not being maintained. A 'helper' copy constructor has been created to solve the problem, but it might be better to make it a dummy constructor and to not rely on another DS_Node for input.