// functions called before writing to the string: they copy it if there
// are other references to our data (should be the only owner when writing)
// functions called before writing to the string: they copy it if there
// are other references to our data (should be the only owner when writing)