def recover_ordering(ordering):
        corrected_ordering = []

        for it in range(len(ordering)):
            t = ordering[it]
            if Utility.is_enough_to_be_executed(
                    wf, t, corrected_ordering + fixed_tasks_ids):
                corrected_ordering.append(t)
            else:
                #print("INCORRECT")
                return False
    def recover_ordering(ordering):
        corrected_ordering = []

        while len(ordering) > 0:
            ord_iter = iter(ordering)
            while True:
                t = next(ord_iter)
                if Utility.is_enough_to_be_executed(
                        wf, t, corrected_ordering + fixed_tasks_ids):
                    ordering.remove((t))
                    corrected_ordering.append(t)
                    break
                else:
                    #print("incorrect " + str([task[0] for task in ordering_particle.entity]))
                    pass
            pass
        return corrected_ordering