code: def add_modifier(self, modifier, keywords, relative_pos,
                       action, parameter=None):
          
          if relative_pos == 0:
              raise ValueError("relative_pos cannot be 0")
          modifier_dict = self._modifiers.get(modifier, {})
          value = (action, parameter, relative_pos)
          for keyword in keywords:
              action_list = list(modifier_dict.get(keyword, []))
              action_list.append(value)
              modifier_dict[keyword] = tuple(action_list)
          self._modifiers[modifier] = modifier_dict
docs: Modify existing tasks based on presence of a keyword.
  
          Parameters
          ----------
          modifier : str
              A string value which would trigger the given Modifier.
          keywords : iterable of str
              sequence of strings which are keywords for some task,
              which has to be modified.
          relative_pos : int
              Relative position of the task which should be modified
              in the presence of `modifier`. It's value can never be 0. Data
              fields should also be considered when calculating the relative
              position.
          action : str
              String value representing the action which should be performed
              on the task. Action represents calling a arbitrary function
              to perform th emodification.
          parameter : object
              value required by the `action`.(Default None)