communicate() to wait on flows to finish