void Start()
    {
        Model.Stop();
        View.SetMusicLength(Model.MusicLength);

        Model.PlaybackTime.Subscribe(x =>
        {
            Debug.Log("playback: " + x);
            View.SetPlaybackTime(x);
        });

        Model.CurrentPlayerState.Subscribe(state =>
        {
            View.TogglePlayStopButton(state != PlayerState.Playing);
        });


        View.PlayButton.onClick.AsObservable().Subscribe(_ =>
        {
            Model.Play();
        });

        View.StopButton.onClick.AsObservable().Subscribe(_ =>
        {
            Model.Stop();
        });

        View.LoopToggle.OnValueChangedAsObservable().Subscribe(isOn =>
        {
            Model.SetLoop(isOn);
        });

        View.SeekBar.onValueChanged.AddListener((value) =>
        {
            Model.PlaybackTime.Value = value;
        });

        View.SeekBar.OnPointerDownAsObservable().Subscribe(pointerEventData =>
        {
            Model.Stop();
        });
    }