def load_and_append(probe_dict, probes, instruments={}):
        loaded_failed = {}
        updated_probes = {}
        updated_probes.update(probes)
        updated_instruments = {}
        updated_instruments.update(instruments)
        new_instruments = list(set(probe_dict.keys())-set(probes.keys()))
        if new_instruments != []:
            updated_instruments, failed = Instrument.load_and_append({instrument_name: instrument_name for instrument_name in new_instruments}, instruments)
            if failed != []:
                for failed_instrument in set(failed) - set(instruments.keys()):
                    for probe_name in probe_dict[failed_instrument]:
                        loaded_failed[probe_name] = ValueError('failed to load instrument {:s} already exists. Did not load!'.format(failed_instrument))
                    del probe_dict[failed_instrument]
        for instrument_name, probe_names in probe_dict.items():
            if not instrument_name in updated_probes:
                updated_probes.update({instrument_name:{}})
            for probe_name in probe_names.split(','):
                if probe_name in updated_probes[instrument_name]:
                    loaded_failed[probe_name] = ValueError('failed to load probe {:s} already exists. Did not load!'.format(probe_name))
                else:
                    probe_instance = Probe(updated_instruments[instrument_name], probe_name)
                    updated_probes[instrument_name].update({probe_name: probe_instance})
        return updated_probes, loaded_failed, updated_instruments