usage of shared_ptr
shared_ptr init