public LearnerAmalgamator(
            IAmalgamator <MessageLearnerProviderSpecLearnerMonitoring> providerSpecLearnerMonitoringAmalgamator,
            IAmalgamator <MessageLearnerLearnerEmploymentStatus> learnerEmploymentStatusAmalgamator,
            IAmalgamator <MessageLearnerLearnerHE> learnerHEAmalgamator,
            IRuleProvider ruleProvider,
            IAmalgamationErrorHandler amalgamationErrorHandler)
            : base(Entity.Learner, (x) => x.LearnRefNumber, amalgamationErrorHandler)
        {
            _providerSpecLearnerMonitoringAmalgamator = providerSpecLearnerMonitoringAmalgamator;
            _learnerEmploymentStatusAmalgamator       = learnerEmploymentStatusAmalgamator;
            _learnerHEAmalgamator = learnerHEAmalgamator;

            _standardRuleString          = ruleProvider.BuildStandardRule <string>();
            _standardRuleStringFirstItem = ruleProvider.BuildStandardRuleFirstItem <string>();
            _standardRuleLong            = ruleProvider.BuildStandardRule <long?>();
            _standardRuleDateTime        = ruleProvider.BuildStandardRule <DateTime?>();
            _addressRule  = ruleProvider.BuildAddressRule();
            _ulnRule      = ruleProvider.BuildUlnRule();
            _alsCostrule  = ruleProvider.BuildAlsCostRule();
            _postCodeRule = ruleProvider.BuildPostCodeRule();
            _learnerContactPreferenceCollectionRule = ruleProvider.BuildLearnerContactPreferenceCollectionRule();
            _lLDDandHealthProblemCollectionRule     = ruleProvider.BuildLLDDandHealthProblemCollectionRule();
            _learnerFAMAmalgamationRule             = ruleProvider.BuildLearnerFAMAmalgamationRule();
            _learningDeliveryRule = ruleProvider.BuildLearningDeliveryRule();
        }