Protocol specification
Add cabal stuff