lots of updates. proper 3 way handshake