Version handshake

addresses #166 
we no longer need to break, because if we send out before we `select`, any case ends the process.