Had a chat with @tristantarrant and we both agree that making CH implementations pluggable is probably not a good idea, since it's soo tied to the protocol itself. The users should only need to provide version number information, nothing else. This won't be done at this point.