improve precompileString