code: def choose(self, choose_from):
          
  
          for choice in self.elements:
              if choice in choose_from:
                  return ImplementationChoice(choice, choose_from[choice])
          raise LookupError(self.elements, choose_from.keys())
docs: given a mapping of implementations
          choose one based on the current settings
          returns a key value pair