public UseCases Compose(
            ApplicationEventsPresenter applicationEventsPresenter,
            DiagnosticMessages diagnosticMessages)
        {
            _watcher = FileSystemWatchers();

            var applicationUseCases = Synchronized(
                ApplicationUseCases(diagnosticMessages,
                                    PathOperationsContext(
                                        applicationEventsPresenter,
                                        diagnosticMessages)));

            _watcher.ReportChangesTo(FilteredWith(_filters, applicationUseCases));
            return(applicationUseCases);
        }