This should probably mention the type, and also what happens if you call this function before the protocol is negotiated.