fixed _read(), _write()