def _recursive_work_resolver(self, worker_name, md5):
        """ Internal: Input dependencies are recursively backtracked, invoked and then
               passed down the pipeline until getting to the requested worker. """

        # Looking for the sample?
        if worker_name == 'sample':
            return self.get_sample(md5)

        # Looking for info?
        if worker_name == 'info':
            return self._get_work_results('info', md5)

        # Looking for tags?
        if worker_name == 'tags':
            return self._get_work_results('tags', md5)

        # Do I actually have this plugin? (might have failed, etc)
        if (worker_name not in self.plugin_meta):
            print 'Alert: Request for non-existing or failed plugin: %s' % (worker_name)
            return {}

        # If the results exist and the time_stamp is newer than the entire work_chain, I'm done
        collection = self.plugin_meta[worker_name]['name']
        try:
            work_results = self._get_work_results(collection, md5)
            work_chain_mod_time = self._work_chain_mod_time(worker_name)
            if work_chain_mod_time < work_results[collection]['__time_stamp']:
                return work_results
            elif self.VERBOSE:
                print 'VERBOSE: %s work_chain is newer than data' % (worker_name)
        except WorkBench.DataNotFound:
            if self.VERBOSE:
                print 'Verbose: %s data not found generating' % (worker_name)

        # Okay either need to generate (or re-generate) the work results
        dependencies = self.plugin_meta[worker_name]['dependencies']
        dependant_results = {}
        for dependency in dependencies:
            dependant_results.update(self._recursive_work_resolver(dependency, md5))
        if self.VERBOSE:
            print 'Verbose: new work for plugin: %s' % (worker_name)
        work_results = self.plugin_meta[worker_name]['class']().execute(dependant_results)

        # Enforce dictionary output
        if not isinstance(work_results, dict):
            print 'Critical: Plugin %s MUST produce a python dictionary!' % worker_name
            return None

        # Store the results and return
        self._store_work_results(work_results, collection, md5)
        return self._get_work_results(collection, md5)