still trying to understand handshake