replace now uses boost::replace_all