Add interface for communication layer and minimal communication
implementation