Flesh out protocol implementation.