add shared_ptr

haha