better handling of request/response pairs