use goroutine to process in parallel