Add SmartPointer Template