add channel and goroutine