working on communication protocol