handshake refactor