add initial comm implementation