Getting close ... Need to unit test some more, and fix unioning.