also perhaps this should be:

    string getString()

or similar instead of having to pass the string into it as a parameter, i know it's for performance reasons but i think most of the time you are just going to call this only once so there's no performance gain for most cases and the syntax is nicer if it returns a string