header includes SmartPointer.h