added communication.c etc