better understanding of goroutines and channels