diff --git a/cfg_checker/cli/command.py b/cfg_checker/cli/command.py
index 0a892d8..f98e608 100644
--- a/cfg_checker/cli/command.py
+++ b/cfg_checker/cli/command.py
@@ -12,6 +12,7 @@
 mods_prefix = mods_import_path + '.'
 
 commands = {}
+parsers_inits = {}
 parsers = {}
 helps = {}
 # Pure dynamic magic, loading all 'do_*' methods from available modules
@@ -26,21 +27,24 @@
         # A package! Create it and add commands
         commands[mod_name] = \
             [_n[3:] for _n in dir(_p) if _n.startswith("do_")]
-        parsers[mod_name] = getattr(_p, 'init_parser')
+        parsers_inits[mod_name] = getattr(_p, 'init_parser')
+        parsers[mod_name] = {}
         helps[mod_name] = getattr(_p, 'command_help')
 
 
 def execute_command(args, command):
     # Validate the commands
     # check commands
+    if command not in commands:
+        
+        logger_cli.info("\n# Please, type a command listed above")
+        return 1
     if not hasattr(args, 'type') or not args.type:
+        parsers[command].print_help()
         logger_cli.info("\n# Please, type a command listed above")
         return 1
     _type = args.type.replace("-", "_") if "-" in args.type else args.type
-    if command not in commands:
-        logger_cli.info("\n# Please, type a command listed above")
-        return 1
-    elif _type not in commands[command]:
+    if _type not in commands[command]:
         # check type
         logger_cli.info(
             "\n# Please, select '{}' command type listed above".format(
@@ -79,7 +83,7 @@
 
 def cli_command(_title, _name):
     my_parser = MyParser(_title)
-    parsers[_name](my_parser)
+    parsers[_name] = parsers_inits[_name](my_parser)
 
     # parse arguments
     try:
