a little improvement
update logic of reading body
finally, it works, but still so many bugs