docs: def set_intermediates(self, intermediates, betas=None, transition_states=None):
          """Sets up intermediates and specifies whether it's an electrochemical step.
          Either provide individual contributions or net contributions. If both are given,
          only the net contributions are used.
  
          intermediate_list: list of basestrings
          transition_states: list of True and False
          electrochemical_steps: list of True and False
          betas = list of charge transfer coefficients
          net_corrections: A sum of all contributions per intermediate.
          """
          self.intermediates = intermediates
          self.betas = betas
          self.transition_states = transition_states
  
          if self.corrections is None:
              self.net_corrections = [0.0 for _ in intermediates]
  
          if not self.betas:
              self.betas = [0.0 for _ in intermediates]
  
          if not self.transition_states:
              self.transition_states = [False for _ in intermediates]
  
          # check if all lists have same length:
          props = [len(self.intermediates), len(self.net_corrections), len(self.transition_states),
                   len(self.betas)]
          if not len(set(props)) <= 1:
              raise ValueError('intermediate, net_corrections, transition_states and , '
                               'betas all have to have the same length')
  
          self.get_corrections()
          return(True)