diff --git a/src/lib/ACLAnalyzer.py b/src/lib/ACLAnalyzer.py
index 98a85d0eed6eefb8f5e47949614e830914195421..a183a7043d69d942c3bdd707c253bbd43e289c71 100644
--- a/src/lib/ACLAnalyzer.py
+++ b/src/lib/ACLAnalyzer.py
@@ -2,7 +2,7 @@ from lib.FileReader import ProjectInfo,ElementContext
 from lib.ACReader import ACLData
 from lib.utils import format_log,flatten_node
 from tree_sitter import Node
-from .CFGGenerator import CFGGenerator,CFG
+from .CFGGenerator import CFG
 from .Const import PATH_SEPARATOR
 class ACLAnalyzer():
   def __init__(self,project:ProjectInfo,acl_info:ACLData) -> None:
@@ -64,14 +64,7 @@ class ACLAnalyzer():
     node:Node = route.cfg.traverse()
     if(node.parent.type=='decorated_definition'):
       # Cari fungsi dekorator yang dipanggil
-      # if "profile" in route.name:
-      #   print("NODA",node,node.parent)
-      #   print(principal_list)
-      #   print("A",set(principal_list))
-      #   print(node.parent.children)
       for dec in node.parent.children:
-        # if "profile" in route.name:
-        #   print("PRINCIP",principal_list)
         if dec.type=='decorator':
           if dec.children[-1].type=='call':
             dekorator = dec.children[-1].children[0]  
@@ -81,22 +74,13 @@ class ACLAnalyzer():
           acl_result = None
           if is_route:
             acl_result = self.check_acl_list(route,dekorator.text.decode().split("(")[0].replace("@","").strip())
-            # if "profile" in route.name:
-            #   print(is_route,dekorator,dekorator.text.decode().split("(")[0].replace("@","").strip())
-            #   print("RES",acl_result)
-            #   if acl_result!=None:
-            #     print(set(acl_result))
           if(acl_result!=None):
           # Ini memang fungsi acl
-            # if "profile" in route.name:
-            #   print("inyong",list(set(principal_list) & set(acl_result)),principal_list,set(principal_list))
             principal_list = list(set(principal_list) & set(acl_result))
     # Gak ada dekorator/dekorator gak cocok
     # Traverse fungsinya
     while node:
       # Cek detail untuk beberapa tipe node
-      # if "auth" in route.name:
-      #   print(node)
       if node.type in ['call','assignment']:
         # Cek call method
         # Format: [attribute,argument_list] | [identifier,argument_list]
@@ -105,13 +89,11 @@ class ACLAnalyzer():
         var_name = ""
         for i in range(len(child_list)):
           if child_list[i] in [':',',',]:
-            #TODO handle buat variabel
             continue
           elif child_list[i] in [')']:
               fun_name = ""
           elif child_list[i] == '=':
               # Simpan nama variabel di left hand side
-              #TODO simpan line
               var_name = fun_name
               var_list.append({'name':fun_name,'type':child_list[i+1]})
               fun_name = ""
@@ -119,7 +101,6 @@ class ACLAnalyzer():
             # Cek left side
             left_side = child_list[i-1]
             right_side = child_list[i+1]
-            pass
           elif child_list[i] in ['(']:
             # Cek apakah fungsinya ada
             if fun_name:
@@ -164,7 +145,6 @@ class ACLAnalyzer():
         mode = ''
         role_name = ""
         var_key = ""
-        # print(var_list)
         for var in var_list:
           if var=='==':
             mode = 'eq'
@@ -196,7 +176,6 @@ class ACLAnalyzer():
         for elmt in node.children:
           # Skip kalau dah ':'
           if elmt.type==':':
-            #TODO handle variabel
             break
           elif elmt.type=='while':
             continue
@@ -316,64 +295,10 @@ class ACLAnalyzer():
             # Tambahkan nama fungsinya
             fun_name += components[i]
       elif node.type in ['try_statement','finally_clause','else_clause']:
-        #TODO langsung jalan
         pass
       elif node.type=='except_clause':
         # Dapatkan identifier
         identifier = node.children[1]
-        #TODO handle variabel
-      # elif node.type=='expression_statement':
-      #   components = []
-      #   for child in node.children:
-      #     if child.type in ['elif',':','block']:
-      #       continue
-      #     elif child.type=='identifier':
-      #       components.append(child.text.decode())
-      #     else:
-      #       components += flatten_node(child.children)
-      #   if "auth" in route.name:
-      #     print(components)
-      #   # Cek tiap componentnya
-      #   fun_name = ""
-      #   # if "reasult" in route.name:
-      #     # print("KOMP",components)
-      #   for i in range(len(components)):
-      #     if components[i] in ['(',')']:
-      #       # Cek apakah fungsinya dipanggil
-      #       if fun_name:
-      #         parts = fun_name.split(".")
-      #         # Coba konversi dulu
-      #         if len(parts)>1:
-      #           #TODO hanya handle yg paling awal aja
-      #           for var in var_list:
-      #             if parts[0]==var['name']:
-      #               parts[0] = var['type']
-      #           fun_name = ".".join(parts)    
-      #         for rute in file_method_list:
-      #           function_name = ""
-      #           if parts[0]!='self' and rute['type']=='module_function' and rute['name']==fun_name:
-      #             function_name = fun_name
-      #           elif rute['type']=='class_method' and rute['name']==parts[-1]:
-      #             if parts[0]!='self':
-      #               function_name = fun_name
-      #             else:
-      #               function_name = parts[-1]
-      #           else:
-      #             function_name = fun_name
-      #           # Cek
-      #           acl_result = None
-
-      #           if is_route:
-      #             acl_result =  self.check_acl_list(route,function_name,components[i+1:])
-      #           if acl_result!=None:
-      #             # Ada pengecekan
-      #             principal_list = list(set(principal_list) & set(acl_result))
-      #         fun_name = ""
-      #     elif components[i]=='=':
-      #       fun_name = ""
-      #     else:
-      #       # Tambahkan nama fungsinya
-      #       fun_name += components[i]
       elif node.type in ['if_statement','elif_clause']:
         # Cek kondisinya dulu
         components = []
@@ -386,8 +311,6 @@ class ACLAnalyzer():
             components += flatten_node(child.children)
         # Cek tiap componentnya
         fun_name = ""
-        # if "reasult" in route.name:
-          # print("KOMP",components)
         for i in range(len(components)):
           if components[i] in ['and','or','not']:
             continue
@@ -397,7 +320,6 @@ class ACLAnalyzer():
               parts = fun_name.split(".")
               # Coba konversi dulu
               if len(parts)>1:
-                #TODO hanya handle yg paling awal aja
                 for var in var_list:
                   if parts[0]==var['name']:
                     parts[0] = var['type']
@@ -425,11 +347,6 @@ class ACLAnalyzer():
             # Cek apakah variabel sebelum atau sesudanya adalah acl context
             left_var_name = self.search_acl_var(fun_name,route)
             right_var_name = self.search_acl_var(components[i+1],route)
-            # if "admin_mail" in route.name:
-            #   print(fun_name)
-            #   print(components[i+1])
-            #   print(left_var_name)
-            #   print(right_var_name)
             if right_var_name in self.acl_info.acl_context:
               # Sanitasi left var name
               left_var_name = left_var_name.replace('\"',"").replace("\'","")
@@ -449,11 +366,9 @@ class ACLAnalyzer():
               # Sanitasi
               right_var_name = right_var_name.replace('\"',"").replace("\'","")
               components[i+1] = components[i+1].replace('\"',"").replace("\'","")
-              # print(right_var_name)
               # Cek apakah right var name adalah string
               if type(self.acl_info.acl_context[left_var_name])==dict:
                 # Cek nilainya
-                # print("masuk")
                 if components[i+1] in self.acl_info.acl_context[left_var_name]:
                   if components[i]=='==':
                     principal_list = list(set(principal_list) & set([self.acl_info.acl_context[left_var_name][components[i+1]]]))
@@ -465,9 +380,7 @@ class ACLAnalyzer():
           elif components[i] in ['in']:
             # Cek apakah variaabel kiri merupakan key yang di kanan
             fun_name = fun_name.replace('\"',"").replace("\'","")
-            # print(f"{components[i+1]}.{fun_name}")
             acl_key = self.search_acl_var(f"{components[i+1]}.{fun_name}",route)
-            # print(acl_key)
             if acl_key:
               #Langsung cari yg terkecil
               principal_list = list(set(principal_list) & set(self.acl_info.acl_context[acl_key]))
@@ -477,8 +390,6 @@ class ACLAnalyzer():
             # Tambahkan nama fungsinya
             fun_name += components[i]
       node = route.cfg.traverse()
-      # if "profile" in route.name:
-      #   print("PRINCIPAL",principal_list)
     return principal_list
 
   def analyze_module(self,route:ElementContext)->list[list[str,list[str]]]:
@@ -497,7 +408,6 @@ class ACLAnalyzer():
     service_acls = []
     for f in method_lists:
       if f['type']=='class_method':
-        #TODO class method
         ctx = ElementContext(f"{f['parent']}.{f['name']}",'function',route.location,[])
         ctx.set_cfg(CFG(f['ast'],f['ctx'],f['cursor'],route.cfg.source_code))
         result = self.analyze_function(ctx)
@@ -510,23 +420,17 @@ class ACLAnalyzer():
     return service_acls
   
   def check_acl_list(self,route:ElementContext,name:str,ctx:list[str]=[])->list[str]|None:
-    #TODO handle variabel dan kelas dan import
     file_method_list = self.project_info.dependency_manager.get(route.location).method_list
     # Format name: fun atau self.fun
     acl_list = [role for role in self.acl_info.principal_list]
     for acl_class in self.project_info.acl_class:
-      # if "profile" in route.name:
-      #   print("NOW",set(acl_list))
       acl_class.cfg.reset()
       if(acl_class.type=='library' and acl_class.location==route.location):
-        # if "profile" in route.name:
-        #     print("a",acl_class.context)
         if(acl_class.context):
           # Cek apakah fungsi yang merupakan acl digunakan
           # context berisi daftar fungsi yang merupakan fungsi untuk cek ACL
           while True:
             acl_node:Node|None = acl_class.cfg.traverse()
-            # print("tuduh",acl_node)
             if not acl_node:
               break
             # Handle kasus antara gak ada context fungsi mana yang acl maupun ada
@@ -536,17 +440,12 @@ class ACLAnalyzer():
               # Cek apakah dia manggil fungsi yang diimport di acl
                 elmt = acl_class.get_base_element_name().split(" ")
                 formatted_key = f"lib:{elmt[-1]}::{name}"
-                # if "profile" in route.name:
-                #   print(formatted_key,self.acl_info.acl_context)
                 if formatted_key not in self.acl_info.acl_context:
                   acl_list = None
                 else:
                   acl_list = self.acl_info.acl_context[formatted_key]
-                  # print("SEKARANG",acl_list)
       # Kasus kalau acl nya kelas atau fungsi
       elif acl_class.type in ['class','function']:
-        # if "profile" in route.name:
-        #     print("b")
         # Cek apakah ada parent context
         parent_class = ""
         for k in acl_class.context:
@@ -581,8 +480,6 @@ class ACLAnalyzer():
               elif(function['type']=='class_method' and function['name']==acl_class.get_base_element_name() and (name==f"{function['parent']}.{function['name']}" or function['parent']==parent_class)):
                 acl_list = list(set(acl_list) & set(self.analyze_function(acl_class,False)))
         else:
-          # if "profile" in route.name:
-          #     print("c")
           # Beda file, cek di import ada gak
           # Kali aja ada di module ini
           dependency_lists = self.project_info.dependency_manager.get(route.location).dependency_list
@@ -644,8 +541,6 @@ class ACLAnalyzer():
                     if(tmp_name==tmp_comparator):
                       # Cek apakah dia manggil fungsi yang diimport di acl
                       acl_list = list(set(acl_list) & set(self.analyze_function(acl_class,False)))
-    # if "profile" in route.name:
-    #   print("baiknya",acl_list)
     return acl_list
   
   def search_acl_var(self,var_name:str,route:ElementContext)->str:
@@ -658,9 +553,6 @@ class ACLAnalyzer():
     for dep in self.project_info.dependency_manager.get(route.location).dependency_list:
       lib_name = dep[1]['original']
       format_lib = f'lib:{lib_name}::{check_var}'
-      # if "reasult" in route.name:
-      # print("ASU",components,check_var)
-      # print(format_lib)
       if (components[0]==dep[1]['rename'] or components[0]==dep[1]['original']) and format_lib in self.acl_info.acl_context:
         return format_lib
       elif format_lib in self.acl_info.acl_context:
diff --git a/src/lib/ACReader.py b/src/lib/ACReader.py
index ddc9e3c7c8ca144dc16859bc9a8991325b770d1a..be0a59870789c3b88ab270b7ee77f666bf72a918 100644
--- a/src/lib/ACReader.py
+++ b/src/lib/ACReader.py
@@ -1,5 +1,4 @@
 from lib.utils import format_log
-from typing import Optional,Dict,Any,Type
 import re
 
 class ACLData():
@@ -18,7 +17,6 @@ class ACReader():
   def __init__(self,path:str,req_file:str|None=None) -> None:
     self.acl_path:str = path
     self.req_file:str = req_file
-  # @ACL
   def read(self) -> ACLData:
     format_log("Reading ACL File...")
     principal_list:list[str] = []
@@ -84,5 +82,4 @@ class ACReader():
               content = detail[1].replace(" ","").split(",")
             acl_context[detail[0]] = content
     acl_data = ACLData(principal_list,service_acl,acl_context)
-    # print(acl_data)
     return acl_data
\ No newline at end of file
diff --git a/src/lib/ASTGenerator.py b/src/lib/ASTGenerator.py
index 97e78e416a967d8edfe26b707ed55755dce509c5..3a5dea9706645c4841e7527395789795544bbfe1 100644
--- a/src/lib/ASTGenerator.py
+++ b/src/lib/ASTGenerator.py
@@ -1,7 +1,6 @@
 from tree_sitter import Language, Parser,Node,TreeCursor,Tree
 import tree_sitter_python as tspython
 from lib.custom_class import ElementContext
-from .DependencyManager import DependencyManager
 from lib.utils import format_log
 import re
 class ASTGenerator():
@@ -154,13 +153,6 @@ class ASTGenerator():
     ast = self.parser.parse(file_content).root_node
     cursor = ast.walk()
     return (ast,cursor,file_content)
-  
-# Kasus Import Python:
-# import a
-# import a as b
-# from a import c,d
-# from a import *
-# from a import c as b
 
   def parse_library(self,ctx:ElementContext)->tuple[Node|None,TreeCursor|None]:
     # Tentukan jenis import nya
diff --git a/src/lib/CFGGenerator.py b/src/lib/CFGGenerator.py
index 939b06097ed74634a3f4f8c7941c1a1aa7dca4e8..9db2b2bec611f8126abb77dddbcaef0154ae224f 100644
--- a/src/lib/CFGGenerator.py
+++ b/src/lib/CFGGenerator.py
@@ -80,26 +80,13 @@ class CFG():
       have_sibling = self.cursor.goto_next_sibling()
     return None
 
-# Rules sementara
-
-  # (V) trt_statement | except_statement (V)
-  # (V) funct -> body (V)
-  # if_statement | (V)
-  # if_statement -> consequence | alternative (V)
-  # alternative: elif_clause -> consequence (V)
-  #alternative: else_clause -> body (V)
-  # with_statement -> body (V)
-  # for statement -> block  (V)
-  # while statement -> block (V)
   def traverse_function(self)->Node|None:
-    # print("initial",self.cursor.node)
     # Terminate
     if self.is_node_equal(self.cursor.node,self.original_cursor.node) and self.is_traversing:
       return None
     if self.is_node_equal(self.cursor.node,self.original_cursor.node):
       self.is_traversing = True
 
-
     if(self.cursor.node.type=='function_definition'):
       # Simpan next branch
       tmp_ptr = self.cursor.copy()
@@ -112,7 +99,6 @@ class CFG():
     elif(self.cursor.node.type=='block'):
       # Blok fungsi
       self.cursor.goto_first_child()
-      # print("return",self.cursor.node,self.cursor.node.parent.children)
       return self.cursor.node
     elif(self.cursor.node.type=='try_statement'):
       # Blok try-catch
@@ -130,24 +116,18 @@ class CFG():
         self.cursor.reset_to(self.next_branch)
         return self.cursor.node
     elif(self.cursor.node.type in ['except_clause','finally_clause']):
-        # return block
         self.cursor.goto_last_child()
         return self.cursor.node
     elif(self.cursor.node.type=='if_statement'):
       # Ada percabangan
       # cari block node
       self.cursor.goto_first_child()
-      # while self.cursor.node.type in ["if",":"]:
       while self.cursor.node.type !='block':
         self.cursor.goto_next_sibling()
       node = self.cursor.node
       # simpan branch berikutnya
-      # self.cursor.goto_parent()
-      # while has_sibling and self.cursor.node.type not in ['elif_clause','else_clause']:
-      # has_sibling = self.cursor.goto_next_sibling()
       tmp_ptr = self.cursor.copy()
       has_sibling = True
-      # while not has_sibling:
       while has_sibling and tmp_ptr.node.type not in ['elif_clause','else_clause']:
         has_sibling = tmp_ptr.goto_next_sibling()
       if(not has_sibling):
@@ -158,10 +138,8 @@ class CFG():
           if CFG.is_node_equal(prev_node,tmp_ptr.node):
             break
         self.next_branch = tmp_ptr.copy()
-        # self.cursor.reset_to(tmp_ptr)
       else:
         self.next_branch = tmp_ptr.copy()
-      # print("if return",node,self.cursor.node)
       return node
     elif(self.cursor.node.type=='elif_clause'):
       # Ada percabangan
@@ -232,7 +210,6 @@ class CFG():
       # reset next branch
       self.next_branch = None 
       return self.cursor.node
-    #TODO call
     elif self.cursor.node.type=='return_statement':
       # Dapatkan yang di return statement
       self.cursor.goto_first_child()
@@ -243,7 +220,6 @@ class CFG():
       # Ada percabangan
       # cari block node
       self.cursor.goto_first_child()
-      # while self.cursor.node.type in ["if",":"]:
       while self.cursor.node.type in ['match',':']:
         self.cursor.goto_next_sibling()
       node = self.cursor.node
@@ -317,9 +293,6 @@ class CFG():
             self.cursor.goto_next_sibling()
             return self.cursor.node # return a
           elif(self.cursor.node.children[i].type=="dotted_name"):
-            # format: from a import b
-            # print("MASUK")
-            # print("SU",self.cursor.node.children)
             self.cursor.goto_last_child()
             while self.cursor.node.type in [')',',','comment']:
               self.cursor.goto_previous_sibling()
diff --git a/src/lib/FileReader.py b/src/lib/FileReader.py
index 8308946b0c50ae5650b981aad934b8c1487519ce..b90e943e80690b0630e7a7c5a3360c416c7cafc3 100644
--- a/src/lib/FileReader.py
+++ b/src/lib/FileReader.py
@@ -1,11 +1,10 @@
 import os
 import re
 from lib.utils import format_log
-from typing import Optional
 from lib.CFGGenerator import CFGGenerator,CFG
 from lib.custom_class import ElementContext
 from .Const import PATH_SEPARATOR
-from .DependencyManager import DependencyManager,FileInformation
+from .DependencyManager import DependencyManager
 class FileReader:
     ANNOTATION_PATTERN = "\S*@.+"
     def __init__(self, project_path:str)->None:
@@ -45,11 +44,9 @@ class FileReader:
                 # Cari tahu jenis acl nya
                 i+=1
                 while re.search(FileReader.ANNOTATION_PATTERN,lines[i]):
-                  #TODO handle kalau ketemu yang lain
                   i+=1
                 # Baca nama modul
                 # import_name:flask_login
-                # print(additional_context)
                 module_name = additional_context[0].split(":")[1].strip()
                 self.dependency_names.append({"name":module_name,"ctx":additional_context})
             i+=1
@@ -60,12 +57,7 @@ class FileReader:
       project_info:ProjectInfo = ProjectInfo()
       for file in files:
         with open(file,'rb') as source_code:
-          # print(file)
-          # print(source_code.read().decode())
-          # import time
-          # time.sleep(20)
           lines = source_code.read().decode().split("\n")
-          # lines = source_code.readlines()
           i = 0
           while i < len(lines):
             is_skipped = False
@@ -78,7 +70,6 @@ class FileReader:
                 # Cari tahu jenis yang di-excempt
                 i+=1
                 stripped_lines = lines[i].strip()
-                # print("A",lines[i])
                 while not is_skipped and (re.search(FileReader.ANNOTATION_PATTERN,lines[i]) or not stripped_lines or stripped_lines[0] in ["#","@"]):
                   next_annotations = self.have_annotation(lines[i])
                   for annon in next_annotations:
@@ -86,15 +77,12 @@ class FileReader:
                       # Skip fungsi ini
                       is_skipped = True
                       break
-                    #TODO handle sisanya
                   i+=1
-                  # print("B",lines[i])
                   stripped_lines = lines[i].strip()
                 if is_skipped:
                   continue
                 # Kalau next line nya class, ya class, kalau def yg fungsi, selain itu type nya module
                 curr_node = None
-                # print("C",lines[i])
                 if re.search("\S*class +",lines[i]): 
                   curr_node = ElementContext(lines[i].strip().split(" ")[1],'class',file,additional_context)
                 elif re.search("\S*def +",lines[i]):
@@ -117,7 +105,6 @@ class FileReader:
                   if route.location==file and (CFG.is_node_equal(route.cfg.ast,tmp_parent)):
                     route.context.append(f"Exempt::{curr_node.name.split('(')[0]}")
               elif("@ACL" in annotation):
-                # print("MASUK")
                 # Ini kelas acl
                 # Cek jika ada keterangan tambahan
                 match = re.search(r'\(.*\)',lines[i])
@@ -127,7 +114,6 @@ class FileReader:
                 # Cari tahu jenis acl nya
                 i+=1
                 while re.search(FileReader.ANNOTATION_PATTERN,lines[i]):
-                  #TODO handle kalau ketemu yang lain
                   i+=1
                 if re.search("\S*class +",lines[i]):
                   # ACL nya kelas
@@ -141,12 +127,11 @@ class FileReader:
                 else:
                   # Ini kelas biasa
                   continue
-                # Generate CFG jika ini  acl
+                # Generate CFG jika ini acl
                 cfg,deps = self.cfg_generator.generate(project_info.acl_class[-1])
                 project_info.acl_class[-1].set_cfg(cfg)
-                #Daftarkan dependency
+                # Daftarkan dependency
                 project_info.dependency_manager.add(deps)
-                # project_info.dependency_manager.add(FileInformation("","",))
                 # Cek jika ini fungsi dalam kelas
                 if(project_info.acl_class[-1].type=='function'):
                   parent = project_info.acl_class[-1].cfg.ast.parent.parent
@@ -164,7 +149,6 @@ class FileReader:
                 # Cari tahu jenis rute nya
                 i+=1
                 have_annotation = self.have_annotation(lines[i])
-                # print(lines[i])
                 while not is_skipped and re.search(FileReader.ANNOTATION_PATTERN,lines[i]) and not have_annotation:
                   next_annotations = self.have_annotation(lines[i])
                   for annon in next_annotations:
@@ -172,7 +156,6 @@ class FileReader:
                       # Skip fungsi ini
                       is_skipped = True
                       break
-                    #TODO handle sisanya
                   i+=1
                 if have_annotation:
                   subanot = None if len(have_annotation)==0 else have_annotation[0]
diff --git a/src/lib/HandlerSanitizationAnalyzer.py b/src/lib/HandlerSanitizationAnalyzer.py
index 2c6402ab1a2ae008f13bd5d6971d4ba3536e9f58..df9626c5af7b30fe7605181a19ca9e4529a56c05 100644
--- a/src/lib/HandlerSanitizationAnalyzer.py
+++ b/src/lib/HandlerSanitizationAnalyzer.py
@@ -70,15 +70,11 @@ class HandlerSanitizationAnalyzer():
           else:
             dekorator = dec.children[-1] 
       # Cek apakah ada di fungsi atau library
-          # print("kimitachi",dekorator.text.decode().split("(")[0].replace("@","").strip())
           if self.is_in_acl_list(route,dekorator.text.decode().split("(")[0].replace("@","").strip()):
             return True
     # Gak ada dekorator/dekorator gak cocok
     # Traverse fungsinya
     while node:
-      # if "profile" in route.name:
-      #   print(node)
-        # print("KOMP",components)
       # Cek detail untuk beberapa tipe node
       if node.type in ['call','assignment']:
         # Cek call method
@@ -92,7 +88,6 @@ class HandlerSanitizationAnalyzer():
               fun_name = ""
           elif child_list[i] == '=':
               # Simpan nama variabel di left hand side
-              #TODO simpan line
               var_list.append({'name':fun_name,'type':child_list[i+1]})
               fun_name = ""
           elif child_list[i] in ['(']:
@@ -163,9 +158,6 @@ class HandlerSanitizationAnalyzer():
             components += flatten_node(child.children)
         # Cek tiap componentnya
         child_list = flatten_node(node.children)
-        # if "search" in route.name:
-        #   print(node)
-        #   print("KOMP",components)
         fun_name = ""
         for child in child_list:
           if child in [':',',']:
@@ -234,18 +226,12 @@ class HandlerSanitizationAnalyzer():
         # Cek kondisinya dulu
         components = []
         for child in node.children:
-          # if child.type in ['with','block',":"]:
-          #   continue
           if child.type in ['identifier','in']:
             components.append(child.text.decode())
           elif child.type in ['string']:
             components.append(child.text.decode().replace('"','').replace("'",""))
           else:
             components += flatten_node(child.children)
-        if "adminPanel" in route.name:
-          print(node.children)
-          print(node,node.text,components)
-        # var_name = ""
         for i in range(len(components)):
           if components[i] in ['in']:
             # Cek kanan kirinya
@@ -253,12 +239,8 @@ class HandlerSanitizationAnalyzer():
             right_side = components[i+1]
             # Cek apakah ini acl
             if self.is_in_acl_list(route,right_side):
-              print("masuk")
               return True
-          # else:
-          #   var_name = components[i]
       elif node.type in ['try_statement','finally_clause','else_clause']:
-        #TODO langsung jalan
         pass
       elif node.type=='except_clause':
         # Dapatkan identifier
@@ -274,8 +256,6 @@ class HandlerSanitizationAnalyzer():
           else:
             components += flatten_node(child.children)
         # Cek tiap componentnya
-        # if "profile" in route.name:
-        #   print(components)
         fun_name = ""
         for i in range(len(components)):
           if components[i] in ['and','or','not']:
@@ -286,7 +266,6 @@ class HandlerSanitizationAnalyzer():
               parts = fun_name.split(".")
               # Coba konversi dulu
               if len(parts)>1:
-                #TODO hanya handle yg paling awal aja
                 for var in var_list:
                   if parts[0]==var['name']:
                     parts[0] = var['type']              
@@ -314,12 +293,10 @@ class HandlerSanitizationAnalyzer():
         if fun_name:
           # Cek jika ini nama library yg diimpor
           parts = fun_name.split(".")
-          # print(self.is_in_acl_list(route,parts[0]))
       node = route.cfg.traverse()
     return False
 
   def analyze_module(self,route:ElementContext)->list[str]:
-    #TODO CFG
     format_log(f"Analyzing module {route.get_base_element_name()} in {route.location}...")
     file_method_list = self.project_info.dependency_manager.get(route.location).method_list
     # Cari info semua fungsi di module
@@ -347,39 +324,18 @@ class HandlerSanitizationAnalyzer():
   def is_in_acl_list(self,route:ElementContext,name:str,ctx:list[str]=[]):
     # Format name: fun atau self.fun
     file_method_list = self.project_info.dependency_manager.get(route.location).method_list
-    # print(self.project_info.acl_class)
     for acl_class in self.project_info.acl_class:
       acl_class.cfg.reset()
-      # print("AA",acl_class)
-      if "adminPanel" in route.name:
-            print("kena pala")
-            print(acl_class,acl_class.type)
-            print(acl_class.location)
       if(acl_class.type=='library' and acl_class.location==route.location):
-        # print("acl",acl_class)
         if(acl_class.context):
           # Cek apakah fungsi yang merupakan acl digunakan
           # context berisi daftar fungsi yang merupakan fungsi untuk cek ACL
-          # if "new_content" in route.name:
-          #     # print("a")
-          #     print(acl_class.cfg.ast,acl_class.context)
           while True:
             acl_node:Node|None = acl_class.cfg.traverse()
-            # if "new_content" in route.name:
-            #   # print("a")
-            #   print(acl_class.cfg.ast,acl_node)
             if not acl_node:
               break
-            if "adminPanel" in route.name:
-              print(name)
-              print(acl_class.context)
-              print(acl_node)
-              print(acl_node.text)
-            # acl_node = None
-            # print("asu",acl_class.context,acl_node.text.decode())
             # Handle kasus antara gak ada context fungsi mana yang acl maupun ada
             if(not acl_class.context or  (acl_node.text.decode().split(".")[0] in acl_class.context)):
-              # print(name, acl_class.cfg.get_name(acl_node))
               # Cek jika ini fungsi ataupun kelas
               if(name==acl_class.cfg.get_name(acl_node) or name.split(".")[0]==acl_class.cfg.get_name(acl_node)):
               # Cek apakah dia manggil fungsi yang diimport di acl
@@ -396,7 +352,6 @@ class HandlerSanitizationAnalyzer():
           # Kali aja ada di module ini
           for function in file_method_list:
             if(acl_class.type=='class' and function['type']=='class_method' and function['parent']==acl_class.get_base_element_name()):
-              #TODO hanya handle 1 accessing misal a.b, a.b.c gak bisa
               full_name = name
               if len(name.split("."))==1 and ctx:
                 j = 0
@@ -441,7 +396,6 @@ class HandlerSanitizationAnalyzer():
                   if m["rename"]:
                     # Pake rename
                     comparator = m["rename"]
-                  #TODO hanya handle 1 accessing misal a.b, a.b.c gak bisa
                   if len(name.split("."))==1 and ctx:
                     j = 0
                     elmt = ctx[j]
diff --git a/src/lib/MainMenu.py b/src/lib/MainMenu.py
index ddcca81e3c200b789b489869a02cd5e1b696b0c5..81be73aa5778f5cd45b05229179bdec10474197f 100644
--- a/src/lib/MainMenu.py
+++ b/src/lib/MainMenu.py
@@ -5,20 +5,17 @@ from lib.HandlerSanitizationAnalyzer import HandlerSanitizationAnalyzer
 from lib.ACLAnalyzer import ACLAnalyzer
 from lib.VulnerabilitReporter import VulnerabilityReporter
 import time
-# @ACL(explore_decorator_no_args)
-from lib.experiment import explore_decorator_no_args,explore_decorator
 
 # Supaya support up arrow di linux, perlu import readlines
 from sys import platform
 if platform=='linux':
   import readline
-def roue():
-  return True
+
 class MainMenu():
     def __init__(self):
       self.project_path:str = ""
       self.acl_path:str = ""
-    # @Service
+
     def start(self):
       self.print_header()
       # Dapatkan Path Menuju File dan Konfigurasi ACL
@@ -38,10 +35,8 @@ class MainMenu():
       try:
         self.acl_data = ACReader(self.acl_path).read()
         format_log("ACL data acquired.")
-        # print(self.acl_data.acl_context)
         self.project_ctx = FileReader(self.project_path).analyze_project()
         format_log("ACL and routes context gathered...")
-        # print(self.project_ctx)
       except FileNotFoundError:
         format_log("File not found. Exiting...",status='error')
         generation_end_time = time.time() 
@@ -65,9 +60,7 @@ class MainMenu():
         detection_time = round(detection_end_time-detection_start_time,6)
         generation_time = round(generation_end_time-generation_start_time,6)
         format_log(f"Analysis finished in {round(time.time()-generation_start_time,6)} seconds. (generation: {generation_time} seconds, detection: {detection_time} seconds)",end="\n\n")
-    # @Service
-    @explore_decorator_no_args
-    # @explore_decorator
+
     def print_header(self):
       print("Welcome to SCA Tool")
       print("V.1.0")
diff --git a/src/lib/experiment.py b/src/lib/experiment.py
deleted file mode 100644
index a79666992ccc9a0577bb170a60d277ebaa84870b..0000000000000000000000000000000000000000
--- a/src/lib/experiment.py
+++ /dev/null
@@ -1,16 +0,0 @@
-def explore_decorator(*args,**kwargs):
-  def inner(func):
-        '''
-           do operations with func
-        '''
-        return func
-  return inner #this is the fun_obj mentioned in the above content
-
-def explore_decorator_no_args(func):
-    ##print("Inside decorator")
-    # def inner(*args,**kwargs):
-    ##print("Inside inner function")
-    ##print("Decorated the function")
-    #     # do operations with func
-    #     func(None)
-    return func
\ No newline at end of file
diff --git a/src/lib/utils.py b/src/lib/utils.py
index 24693219a29cd2eb027af359fe0ef9e50da9b5a6..6bd0755cbefae28430c831e46649dc7dab734790 100644
--- a/src/lib/utils.py
+++ b/src/lib/utils.py
@@ -49,47 +49,3 @@ def flatten_node(nodes: list[Node]) -> list[str]:
     if res[-1].endswith("."):
       res[-1] = res[-1][:-1]
   return res
-
-
-if __name__ == "__main__":
-  format_log("Hello World",status='error')
-  from tree_sitter import Parser, Language
-  import tree_sitter_python as tspython
-
-  PY_LANGUAGE = Language(tspython.language(), "python")
-  parser = Parser()
-  parser.set_language(PY_LANGUAGE)
-
-  tree = parser.parse(
-    bytes(
-            """
-    qux() and jan and not 1 or 1>=2
-""",
-            "utf8",
-        )
-    )
-  cursor = tree.walk()
-  cursor.goto_first_child()
-  cursor.goto_first_child()
-#print(cursor.node)
-#print(cursor.node.children)
-#print("TEST")
-#print("Res",flatten_node(cursor.node.children))
-#print("attribute")
-  cursor.goto_first_child()
-#print(cursor.node)
-#print(cursor.node.children)
-#print("call")
-  cursor.goto_next_sibling()
-  cursor.goto_next_sibling()
-#print(cursor.node)
-#print(cursor.node.children)
-#print("call attr")
-  cursor.goto_first_child()
-#print(cursor.node)
-#print(cursor.node.children)
-#print("call attr call")
-  cursor.goto_first_child()
-#print(cursor.node)
-#print(cursor.node.children)
-