try reduce shared_ptr leaks