private void initGrids()
    {
        playerGrid = new AvailGame[LobbyConstants.NUM_ROWS] ;
        for (int i = 0; i < LobbyConstants.NUM_ROWS; i++)
        {
            playerGrid[i] = new AvailGame();
        }

        fixedGrid = new AvailGame[LobbyConstants.NUM_FIXED_ROWS] ;
        for (int i = 0; i < LobbyConstants.NUM_FIXED_ROWS; i++)
        {
            fixedGrid[i] = new AvailGame();
        }

        AvailGame botGame = fixedGrid[0];
        botGame.setAI();

        AvailGame quickGame = fixedGrid[1];
        quickGame.setQuickJoin();

        AvailGame createGame = fixedGrid[2];
        createGame.setCreateNew();
    }
    void attemptToJoinGame(AvailGame ag)
    {
        waitingMessage = "User clicked " + ag.name;
        removeListeners();
        inLobby = false;
        Debug.Log("User clicked " + ag.name);
        // save the info about the game to be joined
        GameObject sharedES = GameObject.Find("SharedES");
        SharedElectroServer gm = (SharedElectroServer)sharedES.GetComponent<SharedElectroServer>();
        gm.gameToJoin = ag;

        // leave the Lobby room, but don't wait for the event about it
        LeaveRoomRequest lrr = new LeaveRoomRequest();
        lrr.ZoneId = room.ZoneId;
        lrr.RoomId = room.Id;

        _es.Engine.Send(lrr);
        room = null;

        // Start Coroutine to jump to game scene
        StartCoroutine(PollGameLevelLoaded());

        // Execute level load
        Application.LoadLevel("game");
    }