updating examples, adding different usage cases for std::shared_ptr