public ExpenditureAppInputViewModel(Action <string, string> messageForUser, Func <string, string, bool> decisionForUser, IProvideExpenditureDataRecorder recorderFactory, IProvideExpenditureDataProvider dataProviderFactory)
        {
            recorder        = recorderFactory.GetExpenditureDataRecorder();
            dataProvider    = dataProviderFactory.GetExpenditureDataProvider();
            allDominantTags = new ObservableCollection <string>(dataProvider.GetDominantTags());

            allAssociatedTags    = new ObservableCollection <string>(dataProvider.GetAssociatedTags());
            allPeople            = new ObservableCollection <string>(dataProvider.GetPeople());
            this.messageForUser  = messageForUser;
            this.decisionForUser = decisionForUser;
        }