Add weak_ptr

-- all done --
