NewReader/NewWriter now returns an error channel for checking errors