AtomListPotential now uses shared pointers