why not std::string here?