private void Connect_OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            KulamiPeer peer = IncomingChallengesListBox.SelectedPeer();

            if (peer == null)
            {
                return;
            }

            peer.SendResponse(true);
            StartGame(peer,
                      BoardSetup.GetBoard(peer.IncomingRequest.BoardNum),
                      !peer.IncomingRequest.ChallengerGoesFirst);
        }
        private void ChallengeCancel_OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            KulamiPeer peer = OutgoingChallengesListBox.SelectedPeer();

            if (peer == null)
            {
                return;
            }

            //todo: rescind challenge request for selected peer
            peer.SendResponse(false);

            OutgoingChallengesListBox.RemovePeer(peer, OutgoingChallengesCanvas);

            //todo: make this an animation instead
            if (!OutgoingChallengesListBox.HasItems)
            {
                OutgoingChallengesCanvas.Visibility = Visibility.Hidden;
            }
        }