use std::shared_ptr instead of boost::shared_ptr.