use shared pointer to avoid crash
use shared pointer to avoid crash
fix bad_weak_ptr issue, move enable_shared_from_this to base class