add comm.c to operate on communicator