added communication functions