do not use codecs.open