this has bug around the std::string