Implement #2- Pass the offending stream to error events and expose reader/writer interface