cache the PinYin strings for performance