use a closing channel instead of closing the data channel (thanks Dustin!)