Implement the communication function