updated for full character set