let rec filter_outputs_acc os lev new_add_levs acc = 
   match os with 
   | [] -> acc
   | oe::os2 -> let lev_oe = (label_output oe) in
       if (leq lev lev_oe || (List.mem lev_oe new_add_levs)) then 
            (filter_outputs_acc os2 lev new_add_levs (List.append acc [oe]))
       else (filter_outputs_acc os2 lev new_add_levs acc)