Added first version of defining a protocol
Resolved merge conflict
Started integrating protocol into ApplicationState
Resolved merge conflict