diff --git a/src/channel.py b/src/channel.py
index f0ffc4b3ea08185484bb279a18b45b80d348dd0a..bcd76deb273eb8555e2b6b7ae29c1fd59b81dd0e 100644
--- a/src/channel.py
+++ b/src/channel.py
@@ -26,7 +26,7 @@ class Channel(Nextflow_Building_Blocks):
         
 
 
-    def get_code(self, get_OG = True):
+    def get_code(self, get_OG = True, replace_calls =False, clean_pipe=True, remove_emit_and_take=True):
         """Method that returns the channels code
 
         Keyword arguments:
diff --git a/src/code_.py b/src/code_.py
index 0a6a0cb4720bc2ed8acb6b3759ed1fee0e51131f..2ba19ea000ae036e6c1e278a9a08db94156e925a 100644
--- a/src/code_.py
+++ b/src/code_.py
@@ -107,7 +107,8 @@ class Code:
                                 _, end_condition = match.span(1)
                                 extracted_condition = get_code_until_parenthese_count(code=temp_code[end_condition:], val=-1)
                                 condition = extracted_condition[:-1]
-                                body = extarcted.replace(extracted_condition.strip(), "").strip()
+                                #body = extarcted.replace(extracted_condition.strip(), "", 1).strip()
+                                body = re.sub(r"if *\("+re.escape(extracted_condition.strip()), "", all).strip()
                                 if(body!="" and body[0]!="{"):
                                     new = f"if ({condition}) {{\n{body}\n}}\n"
                                     to_replace.append((all, new))
diff --git a/src/executor.py b/src/executor.py
index bb090185d16ea9ce62abd60ca311e1634b69c132..0073716e3ec6b34cb6cb2aaf9c8ce07cc24ff681 100644
--- a/src/executor.py
+++ b/src/executor.py
@@ -117,14 +117,6 @@ class Executor(Nextflow_Building_Blocks):
         self.origin.add_element_to_elements_being_called(element)
 
 
-    def get_code(self, get_OG=False):
-        if(get_OG):
-            if(self.OG_code==""):
-                return self.code.get_code()
-            else:
-                return self.OG_code
-        else:
-            return self.code.get_code()
     
     def clean_pipe_operator(self, pipe):
     
diff --git a/src/main.py b/src/main.py
index 6101b3c6d635baf73edd40980977fbe2f89a90a9..477c0b5995bbdd7af6d81c928cb7af72fde61336 100644
--- a/src/main.py
+++ b/src/main.py
@@ -54,7 +54,7 @@ class Main(Nextflow_Building_Blocks):
         
         for exe in sorted_executor_2_length:
             if(exe.get_type()=="Call" or exe.get_type()=="Operation"):
-                old = exe.get_code(get_OG = True, remove_emit_and_take = True, replace_calls = False)
+                old = exe.get_code(remove_emit_and_take = True, replace_calls = False)
                 new = exe.simplify_code(return_tab = False)
                 if(new!=old):
                     temp = code
diff --git a/src/operation.py b/src/operation.py
index d5390566c60309d9f16824fa729d144e8607fe76..3b2b9ff99f19e5aadc4caaeb4ecc249e65b6cbae 100644
--- a/src/operation.py
+++ b/src/operation.py
@@ -683,7 +683,7 @@ class Operation(Executor):
     def write_summary(self, address, tab = 0):
         file = open(address, "a") 
         file.write("  "*tab+f"{self}\n") 
-        file.write("  "*(tab+1)+"* Code : "+str(self.get_code())+ "\n")
+        file.write("  "*(tab+1)+"* Code : "+str(self.get_code(get_OG=True))+ "\n")
         file.write("  "*(tab+1)+"* Origins"+ "\n")
         for o in self.get_origins():
             file.write("  "*(tab+1+2)+o.get_code()+ f" '{o.get_type()}'\n")
@@ -702,6 +702,8 @@ class Operation(Executor):
         if(get_OG):
             if(self.OG_code!=""):
                 code = self.OG_code
+            return code
+            
         if(clean_pipe):
             code, self.dico_OG_call_2_new_call = self.clean_pipe_operator(code)
   
@@ -957,7 +959,8 @@ class Operation(Executor):
         to_add = []
         dico_origin_2_replace = {}
         for o in self.origins:
-            OG_code = o.get_code(get_OG=True)
+            #OG_code = o.get_code(get_OG=True)
+            OG_code = o.get_code(replace_calls =False, clean_pipe=True, remove_emit_and_take=True)
             try:
                 tmp = dico_origin_2_replace[OG_code]
             except: