avoid copying std::string too much, use const ref instead
avoid copying std::string too much, use const ref instead