private void Start()
    {
        TeamChanger teamChanger = new TeamChanger();

        UniqueList <IEventReceiver> receivers = new UniqueList <IEventReceiver>();

        receivers.Add(teamChanger);

        GameRecorder recorder = new GameRecorder();
        GameReplayer replayer = new GameReplayer(receivers);

        teamChanger.TeamName.Subscribe((newName) => Debug.Log(newName));

        TeamChangeEvent evt = new TeamChangeEvent(40, teamChanger.ID, "New team name");

        recorder.AddEvent(evt);

        string gameLog = recorder.CreateGameLog();

        replayer.Load(gameLog);

        replayer.Update(new Winch.UpdateInfo()
        {
            Time           = 40,
            TicksPerUpdate = 0.1f
        });
    }