In the Great Wall protocol, we are now using strings to represent changes. We'd like to replace that with a custom abstract crypto object named ChoiceDigest, and have 2 concrete objects TileChoice and IntegerChoice. This will represent all the choice data in a common format and then do the operation we need to do on it in a general manner.