docs: def work_request(self, worker_name, md5, subkeys=None):
          """ Make a work request for an existing stored sample.
              Args:
                  worker_name: 'strings', 'pe_features', whatever
                  md5: the md5 of the sample (or sample_set!)
                  subkeys: just get a subkey of the output: 'foo' or 'foo.bar' (None for all) 
              Returns:
                  The output of the worker.
          """
  
          # Pull the worker output
          work_results = self._recursive_work_resolver(worker_name, md5)
  
          # Subkeys (Fixme this is super klutzy)
          if subkeys:
              if isinstance(subkeys, str):
                  subkeys = [subkeys]
              try:
                  sub_results = {}
                  for subkey in subkeys:
                      tmp = work_results[worker_name]
  
                      # Traverse any subkeys
                      for key in subkey.split('.')[:-1]:
                          tmp = tmp[key]
  
                      # Last subkey
                      key = subkey.split('.')[-1]
                      if key == '*':
                          for key in tmp.keys():
                              sub_results[key] = tmp[key]
                      else:
                          sub_results[key] = tmp[key]
  
                  # Set the output
                  work_results = sub_results
  
              except (KeyError, TypeError):
                  raise RuntimeError('Could not get one or more subkeys for: %s' % (work_results))
  
          # Clean it and ship it
          return self.data_store.clean_for_serialization(work_results)