Issue #201: Refactor version negotiation.