add communication function