peer handshake implemented