code: def _resolve_dep(self, key):
          
          if key in self.future_values_key_dep:
              # there are some dependencies that can be resoled
              dep_list = self.future_values_key_dep[key]
              del self.future_values_key_dep[key]  # remove dependencies
              also_finish = []
              # iterate over the dependencies that can now be resoled
              for dep in dep_list:
                  if self.__resolve_dep_helper(dep, key) is True:
                      also_finish.append(dep)
              # maybe the resolving process leed to new deps that can be resolved
              for dep in also_finish:
                  self._resolve_dep(dep)
docs: this method resolves dependencies for the given key.
          call the method afther the item "key" was added to the list of avalable items