not use bytes.reader