A single SplineSpectrum can have multiple Navigators running up and down the vector of SplinePackages. Hence no copy of the data. If a shared pointer makes for a safer implementation, I will use it. Was new to me. Thanks for pointing it out.