added communication framework (needs some rework)