added comm.c