add helper method for on_read
add hint for IO::Handle
add test for IO::Handle
new method pull()