client: negotiate version