public void Initialize()
    {
        //getting array of players from engine then creating playercards
        players     = FindObjectsOfType <Player>();
        players     = players.OrderBy(p => p.Order).ToArray();
        playerCount = players.Length;
        playerInfoManager.CreatePlayerCard(players);

        //checking if the game is network
        isNetworkGame = CheckNetworkGame();

        // Initialize the curernt player
        currentPlayer = GetCurrentPlayer();

        //in hotseat game, currentplayer is used as selected player unless viewing another player
        SetSelectedPlayerBasedOnGameType();

        //setting player's HUD
        SetActivePlayer();

        wrapHand.PopulateHand();
        GetCurrentPlayer().IsSwitching   = false;
        GetCurrentPlayer().DisplayRounds = false;

        //populate histograms size and position for current and past sections
        currentSizeHistogram.SizeRect(playerCount);
        pastSizeHistogram.SizeRect(playerCount);

        //creates current histograms
        //TODO: Update how the Histogram generates the spots so the logic is more
        // clearly defined and can be refactored
        //REFACTOR FIX
        foreach (Player player in players)
        {
            currentSizeHistogram.AddHistogram(player.Order + 1);
        }
        //sets the histograms to the current player
        currentSizeHistogram.SetCurrent(players[0].Order + 1);

        //the HUD is initialized
        IsInitialized = true;
    }