removed reliance on core string processing