feat(*): use std::make_shared to create shared_ptr
feat(*): use std::make_shared to create shared_ptr