IMPORTANT: changed all I/O reads and writes to utf8 encoded unicode with NFKD normalization