This version handles out-of-band data, abort output, and