todo add UTF8 encoding