modify communicate way