eliminate boost::protect