to show how to use shared_ptr