public ViewModel()
    {
        Tags = new TagPresenter();

        Tags.TagCollection.ListChanged += (object o, ListChangedEventargs e) => { DataAccessor.UpdateTag(o[e.NewIndex]); };

        foreach (var tag in DataAccessor.GetTags())
        {
            Tags.TagCollection.Add(new TagEntity(tag, Tags.TagCollection));
        }
    }
        static void Main()
        {
            NGramService       ngrammer     = new NGramService();
            ConcordanceService concordancer = new ConcordanceService();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            MainWindow        main      = new MainWindow();
            CSVLoader         loader    = new CSVLoader();
            LinearHeatmapForm heatmap   = new LinearHeatmapForm();
            DelimiterStep     delim     = new DelimiterStep();
            ChartForm         chart     = new ChartForm();
            Suggester         suggester = new Suggester();

            CSVReadService                    fileReader = new CSVReadService();
            SearchService                     searcher   = new SearchService();
            HeatmapService                    heater     = new HeatmapService();
            FolderService                     folder     = new FolderService();
            DatasetStatisticsService          dataset    = new DatasetStatisticsService();
            TaggedCollectionStatisticsService corpus     = new TaggedCollectionStatisticsService();

            //var tagger = main;
            TagService       service          = new TagService();
            TagsetEditor     editor           = new TagsetEditor();
            TagFileWriter    writer           = new TagFileWriter();
            TagPresenter     tagPresenter     = new TagPresenter(main, main, service, editor, writer);
            TagsetPresenter  tagsetPresenter  = new TagsetPresenter(editor, service, main);
            SuggestPresenter suggestPresenter = new SuggestPresenter(suggester, main, main);
            MainPresenter    presenter        = new MainPresenter(main, main, service, loader, searcher, folder, dataset, corpus, concordancer, ngrammer);

            CSVPresenter     csv = new CSVPresenter(main, loader, fileReader, delim);
            HeatmapPresenter heatmapPresenter = new HeatmapPresenter(main, heatmap, heater);
            ChartPresenter   chartPresenter   = new ChartPresenter(main, chart);

            main.AddOwnedForm(delim);
            Application.Run(main);
        }