use readexactly instead of _length_handler