private void EvaluateRound()
        {
            var winner = MainPlayer.Status == HandStatus.Natural
                ? Winninghand.PlayerOnNatural21
                : Regulations.EvaluateWinner(MainPlayer.Hand, Dealer.Hand);

            var results = GetRoundResults(MainPlayer, winner);

            UpdateBalancesAfterEvaluation(Dealer, MainPlayer as HumanPlayer, winner);
            RoundEvaluated?.Invoke(this, new RoundEvaluatedEventArgs(results));
            RoundRunning = false;

            if (MainPlayer.Balance <= 0)
            {
                GameOver?.Invoke(this, new GameOverEventArgs(MainPlayer.Name + " ran out of money. You Lose!"));
                GameRunning = false;
            }

            if (Dealer.Balance < MainPlayer.Balance)
            {
                GameOver?.Invoke(this, new GameOverEventArgs("Dealer doesn't have enough money to continue. You Win!"));
                GameRunning = false;
            }
        }