rework communication to be coherent with C++