public MainWindowViewModel()
        {
            BrowseOldLevelData = ReactiveCommand.Create <Window, Task>(async window => { OldLevelData = await BrowsePath(window, OldLevelData); });
            BrowseNewLevelData = ReactiveCommand.Create <Window, Task>(async window => { NewLevelData = await BrowsePath(window, NewLevelData); });
            BrowsePlayerData   = ReactiveCommand.Create <Window, Task>(async window => { PlayerData = await BrowsePath(window, PlayerData); });
            BrowseOutputPath   = ReactiveCommand.Create <Window, Task>(async window => { OutputPath = await BrowsePath(window, OutputPath); });
            RunCommand         = ReactiveCommand.Create <TextEditor, Unit>(Run, CanRunProcess.ObserveOn(RxApp.MainThreadScheduler));
            CanRunProcess.OnNext(true);
            _reactiveLogger = new ReactiveLogger();

            _reactiveLogger.OnLog
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(list => LogText.Insert(LogText.TextLength, string.Join(Environment.NewLine, list) + Environment.NewLine));
        }