implementing punycode library