Use std::shared_ptr, not boost::shared_ptr