hopefully non-broken string processing