could be overwritten.
merged conflicts
uses shared ptrs instead of raw isovectors.
duplicate initializer ... not sure where that came from