opportunistic read
stream requests get readResponse as well
some cleanup