communication flow