protocol version needs to be double