Fleshed out Protocol somewhat.