<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_modifier(self, modifier, keywords, relative_pos, action, parameter=None):
 """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) """

        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