add SharedPtr