diff --git a/cfg_checker/cfg_check.py b/cfg_checker/cfg_check.py
index 2ce37eb..11190b4 100644
--- a/cfg_checker/cfg_check.py
+++ b/cfg_checker/cfg_check.py
@@ -2,7 +2,8 @@
 import sys
 from logging import DEBUG, INFO
 
-from cfg_checker.cli.command import execute_command, helps, parsers
+from cfg_checker.cli.command import execute_command, helps, parsers, \
+    parsers_inits
 from cfg_checker.common import config, logger, logger_cli
 from cfg_checker.helpers.args_utils import MyParser
 
@@ -54,7 +55,7 @@
             _command,
             help=helps[_command]
         )
-        parsers[_command](_parser)
+        parsers[_command] = parsers_inits[_command](_parser)
 
     # parse arguments
     try:
@@ -71,6 +72,10 @@
         )
         sys.exit(1)
 
+    if not args.command:
+        parser.print_help()
+        logger_cli.info("\n# Please, type a command listed above")
+        sys.exit(1)
     # Pass externally configured values
     config.ssh_uses_sudo = args.sudo
 
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:
diff --git a/cfg_checker/common/salt_utils.py b/cfg_checker/common/salt_utils.py
index dd6fbec..b3f5cae 100644
--- a/cfg_checker/common/salt_utils.py
+++ b/cfg_checker/common/salt_utils.py
@@ -242,7 +242,7 @@
             _payload['arg'] = param
         if kwarg:
             _payload['kwarg'] = kwarg
-
+        logger_cli.debug("SaltRequest: POST '{}'".format(_payload))
         _response = self.salt_request('post', [_payload])
         if isinstance(_response, list):
             return _response[0]
diff --git a/cfg_checker/nodes.py b/cfg_checker/nodes.py
index 13ab3e7..e028be2 100644
--- a/cfg_checker/nodes.py
+++ b/cfg_checker/nodes.py
@@ -70,7 +70,7 @@
             _valid, _invalid = utils.get_nodes_list(skip_list_file)
             logger_cli.info(
                 "\n# WARNING: Detected invalid entries "
-                "in nodes skip list:\n".format(
+                "in nodes skip list: {}\n".format(
                     "\n".join(_invalid)
                 )
             )
