Added some groundwork for the protocol