diff --git a/PanACoTA/subcommands/all_modules.py b/PanACoTA/subcommands/all_modules.py
index 0e6bda3a66b5c3633e63e2644d1a2b03347f3d4e..6953dab84b153fcdc01154c01e6871ff1a8e0507 100644
--- a/PanACoTA/subcommands/all_modules.py
+++ b/PanACoTA/subcommands/all_modules.py
@@ -67,16 +67,22 @@ def main_from_parse(args):
         result of argparse parsing of all arguments in command line
     """
     cmd = "PanACoTA " + ' '.join(args.argv)
-    main(cmd, args.outdir, args.threads, args.NCBI_species_taxid, args.NCBI_species,
-         args.levels, args.cutn, args.l90, args.nbcont, args.name, args.prodigal_only, args.min_id,
-         args.tol, args.multi, args.mixed, args.soft, verbose=args.verbose, quiet=args.quiet)
-
-
-def main(cmd, outdir, threads, NCBI_species_taxid, NCBI_species, levels, cutn, l90, nbcont,
-         name, prodigal_only, min_id, tol, multi, mixed, soft, verbose=0, quiet=False):
+    args_all = (args.outdir, args.threads, args.verbose, args.quiet)
+    args_prepare = (args.ncbi_species_taxid, args.ncbi_species, args.levels,
+                    args.tmp_dir, args.no_refseq, args.db_dir, args.only_mash, args.info_file,
+                    args.l90, args.nbcont, args.cutn, args.min_dist, args.max_dist)
+    args_annot = (args.name, args.qc_only, args.date, args.prodigal_only)
+    args_pan = (args.min_id, args.clust_mode, args.spedir, args.outfile)
+    args_cp = (args.tol, args.mixed, args.multi, args.floor)
+    args_tree = (args.soft, args.model, args.boot, args.write_boot, args.memory, args.fast)
+    main(cmd, args_all, args_prepare, args_annot, args_pan, args_cp, args_tree)
+
+
+def main(cmd, args_all, args_prepare, args_annot, args_pan, args_corepers, args_tree):
     """
     Call all modules, one by one, using output of one as input for the next one
     """
+    outdir, threads, verbose, quiet = args_all
     os.makedirs(outdir, exist_ok=True)
     # Initialize logger
     import logging
@@ -98,14 +104,9 @@ def main(cmd, outdir, threads, NCBI_species_taxid, NCBI_species, levels, cutn, l
 
     # Run prepare module
     outdir_prepare = os.path.join(outdir, "1-prepare_module")
-    tmp_dir = ""
-    no_refseq = False
-    db_dir = ""
-    only_mash = False
-    info_file = ""
-    min_dist = 1e-4
-    max_dist = 0.06
-
+    (NCBI_species_taxid, NCBI_species, levels, tmp_dir, no_refseq, db_dir, only_mash, info_file,
+     l90, nbcont, cutn, min_dist, max_dist) = args_prepare
+    logger.info("prepare step")
     info_file = prepare.main("PanACoTA prepare", NCBI_species, NCBI_species_taxid, levels,
                              outdir_prepare, tmp_dir, threads, no_refseq, db_dir, only_mash,
                              info_file, l90, nbcont, cutn, min_dist, max_dist, verbose, quiet)
@@ -113,65 +114,49 @@ def main(cmd, outdir, threads, NCBI_species_taxid, NCBI_species, levels, cutn, l
     # Run annotate module
     list_file = ""
     db_path = ""
-    outdir_annotate = os.path.join(outdir, "2-annotate_module")
-    import time
-    date = time.strftime("%m%y")
-    force = False
-    qc_only = False
     tmp_dir = ""
+    force = False
+    outdir_annotate = os.path.join(outdir, "2-annotate_module")
+    (name, qc_only, date, prodigal_only) = args_annot
     res_annot_dir = None
     small = False
 
+    logger.info("annotate step")
     lstinfo, nbgenomes = annotate.main("PanACoTA annotate", list_file, db_path, outdir_annotate,
                                        name, date, l90, nbcont, cutn, threads, force, qc_only,
                                        info_file, tmp_dir, res_annot_dir, verbose, quiet,
-                                       prodigal_only, small)
+                                       prodigal_only)
 
     # Pangenome step
     name_pan = f"{name}_{nbgenomes}"
     outdir_pan = os.path.join(outdir, "3-pangenome_module")
-    clust_mode = 1
-    spe_dir = ""
     dbpath = os.path.join(outdir_annotate, "Proteins")
-    panfile = pangenome.main("PanACoTA pangenome", lstinfo, name, dbpath, min_id, outdir_pan,
-                             clust_mode, spe_dir, threads, outfile=None, verbose=verbose,
+    (min_id, clust_mode, spe_dir, outfile) = args_pan
+    logger.info("pangenome step")
+    panfile = pangenome.main("PanACoTA pangenome", lstinfo, name_pan, dbpath, min_id, outdir_pan,
+                             clust_mode, spe_dir, threads, outfile, verbose=verbose,
                              quiet=quiet)
 
     # Coregenome step
     outdir_corpers = os.path.join(outdir, "4-corepers_module")
+    logger.info("corepers step")
+    (tol, mixed, multi, floor) = args_corepers
     corepers_file = corepers.main("PanACoTA corepers", panfile, tol, multi, mixed, outdir_corpers,
-                                  verbose=verbose, quiet=quiet)
-
+                                  floor, verbose, quiet)
     # Align step
     outdir_align = os.path.join(outdir, "5-align_module")
     force = False
+    logger.info("align step")
     align_file = align.main("PanACoTA align", corepers_file, lstinfo, name_pan, outdir_annotate,
-                            outdir_align, threads, force, verbose, quiet)
-    print(align_file)
+                            outdir_align, threads, force, verbose=verbose, quiet=quiet)
+
 
     # Tree step
-    # models_fastme = {"p-distance": "p", "RY-symetric": "Y", "RY": "R",
-    #                  "JC69": "J", "K2P": "K", "F81": "1", "F84": "4",
-    #                  "TN93": "T", "LogDet": "L"}
-    # models_fasttree = {"GTR": "-gtr", "JC": ""}
-    # models_iqtree = set(["HKY", "JC", "F81", "K2P", "K3P", "K81uf",
-    #                      "TNef", "TIM", "TIMef", "TVM", "TVMef", "SYM", "GTR"])
-    # models_iqtree = {mod: mod for mod in models_iqtree}
-    if soft == "fasttree":
-        model = "-gtr"
-    elif soft =="iqtree" or soft == "iqtree2":
-        model = "GTR"
-    elif soft == "quicktree":
-        model = ""
-    elif soft == "fastme":
-        model = "T"
-    else:
-        logger.error(f"Soft {soft} is not possible.")
-        sys.exit(1)
+    (soft, model, boot, write_boot, memory, fast) = args_tree
     outdir_tree = os.path.join(outdir, "6-tree_module")
-    tree.main("PanACoTA tree", align_file, outdir_tree, soft, model, threads, boot=False,
-              write_boot=False, memory=False, fast=False, verbose=verbose, quiet=quiet)
-
+    logger.info("tree step")
+    tree.main("PanACoTA tree", align_file, outdir_tree, soft, model, threads, boot,
+              write_boot, memory, fast, verbose=verbose, quiet=quiet)
     logger.info("All modules of PanACOTA are finished.")