restructure, change protocol to a simple sum protocol, added example client