done is now a buffered channel
formatted with gofmt