Why doesn't the first for loop in the task.precede method use len(cond.mapper) instead of i? This way, for a ConditionTask, precede could be executed multiple times. Otherwise, if precede is incorrectly executed multiple times, the final flow execution might not achieve the intended design