CombinedPotential now uses shared_ptr