implement std::string support