string replace doesn't modify the string in-place