public void Notify(Message m)
    {
        switch (m.messageType)
        {
        case GoalScoredMessage.classMessageType:
            timer.running = false;
            Callback.FireAndForget(() => resetPositions(), goalToPlayerResetTime, this);
            break;

        case GameEndMessage.classMessageType:
            //add player stats data to the endData, once we figure out what stats to use
            for (int i = 0; i < players.Length; i++)
            {
                InputToAction playerControl = players[i].GetComponent <InputToAction>();
                playerControl.movementEnabled  = false;
                playerControl.abilitiesEnabled = false;
                playerControl.rotationEnabled  = false;
            }
            data.Destruct();
            Destroy(this.gameObject);
            break;

        case OvertimeMessage.classMessageType:
            AudioSource mainMusic = spawnedMainMusicPrefab.GetComponent <AudioSource>();
            mainMusic.clip = overtimeClip;
            mainMusic.Play();
            resetPositions(resetTime: false);
            break;
        }
    }