Json is only saving 1 variable

Hello, I’m currently trying to complete the junior programmers course on data persistence, I’ve been able to get most of the functionality except saving the high score over different sessions. Right now it only saves the name of the last high scorer but not their score. I’ve followed the steps exactly as it is on the course but I dont know where the error could be.
Here’s the DataManager that’s supposed to storage of persistent data:

using System.Collections;
using System.Collections.Generic;
using System.IO;
using System;
using UnityEngine;
using UnityEngine.UI;

public class DataManager : MonoBehaviour
{
    public static DataManager Instance;

    public string Name;
    public string MaxScoreName;
    public int MaxScore;

    private void Awake()
    {
        if (Instance != null)
        {
            Destroy(gameObject);
            return;
        }
        Instance = this;
        DontDestroyOnLoad(gameObject);
        LoadName();
    }
    [System.Serializable]
    class SaveData
    {
       public string MaxScoreName;
       public int MaxScore;
    }
    public void SaveName()
    {
        SaveData data = new SaveData();
        data.MaxScoreName = MaxScoreName;
        data.MaxScore = MaxScore;

        string json = JsonUtility.ToJson(data);
        File.WriteAllText(Application.persistentDataPath + "/savefile.json", json);
    }
    public void LoadName()
    {
        string path = Application.persistentDataPath + "/savefile.json";
        if (File.Exists(path))
        {
            string json = File.ReadAllText(path);
            SaveData data = JsonUtility.FromJson<SaveData>(json);

            MaxScoreName = data.MaxScoreName;
            MaxScore = data.MaxScore;

        }
    }
    private void OnApplicationQuit()
    {
        DataManager.Instance.SaveName();
    }
}

and here’s the MainManager that controls the active game:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class MainManager : MonoBehaviour
{
    public Brick BrickPrefab;
    public int LineCount = 6;
    public Rigidbody Ball;

    public Text ScoreText;
    public Text BestScoreText;
    public GameObject GameOverText;
    
    private bool m_Started = false;
    private int m_Points;
    
    private bool m_GameOver = false;

    
    // Start is called before the first frame update
    void Start()
    {
        const float step = 0.6f;
        int perLine = Mathf.FloorToInt(4.0f / step);
        
        int[] pointCountArray = new [] {1,1,2,2,5,5};
        for (int i = 0; i < LineCount; ++i)
        {
            for (int x = 0; x < perLine; ++x)
            {
                Vector3 position = new Vector3(-1.5f + step * x, 2.5f + i * 0.3f, 0);
                var brick = Instantiate(BrickPrefab, position, Quaternion.identity);
                brick.PointValue = pointCountArray[i];
                brick.onDestroyed.AddListener(AddPoint);
            }
        }
    }

    private void Update()
    {
        if (!m_Started)
        {
            if (Input.GetKeyDown(KeyCode.Space))
            {
                m_Started = true;
                float randomDirection = Random.Range(-1.0f, 1.0f);
                Vector3 forceDir = new Vector3(randomDirection, 1, 0);
                forceDir.Normalize();
                Ball.transform.SetParent(null);
                Ball.AddForce(forceDir * 2.0f, ForceMode.VelocityChange);
            }
        }
        else if (m_GameOver)
        {
            if (Input.GetKeyDown(KeyCode.Space))
            {
                SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
            }
        }
    }
    private void LateUpdate()
    {
        MaxScore(m_Points, DataManager.Instance.MaxScore);
    }
    public void MaxScore(int currentScore, int bestScore)
    {
        BestScoreText.text = $"Best Score: {DataManager.Instance.MaxScoreName} {DataManager.Instance.MaxScore} ";
        if (currentScore > bestScore)
        {
            DataManager.Instance.MaxScore = m_Points;
            DataManager.Instance.MaxScoreName = DataManager.Instance.Name;
        }
    }

    void AddPoint(int point)
    {
        m_Points += point;
        ScoreText.text = $"Score : {DataManager.Instance.Name + " " + m_Points}";
    }

    public void GameOver()
    {
        m_GameOver = true;
        GameOverText.SetActive(true);
    }
}

sorry for the messy code, hope it is still readable and you can help me out.