using protocol to pack command / unpack state - not doing anything with it yet