Use std::string instead of char* for most string handling purposes