diff --git a/cfg_checker/cfg_check.py b/cfg_checker/cfg_check.py
index 6b64804..00e40d2 100644
--- a/cfg_checker/cfg_check.py
+++ b/cfg_checker/cfg_check.py
@@ -2,11 +2,10 @@
 import os
 import sys
 import traceback
+from logging import DEBUG, INFO
 
-from logging import INFO,  DEBUG
-
-from cfg_checker.common.exception import CheckerException
 from cfg_checker.common import config, logger, logger_cli
+from cfg_checker.common.exception import CheckerException
 
 
 pkg_dir = os.path.dirname(__file__)
@@ -18,6 +17,7 @@
     'reclass': ['list', 'diff']
 }
 
+
 class MyParser(argparse.ArgumentParser):
     def error(self, message):
         sys.stderr.write('Error: {0}\n\n'.format(message))
@@ -36,14 +36,14 @@
 
 def config_check_entrypoint():
     """
-    Main entry point. Uses nested parsers structure 
+    Main entry point. Uses nested parsers structure
     with a default function to execute the comand
 
     :return: - no return value
     """
     # Main entrypoint
     parser = MyParser(prog="# Mirantis Cloud configuration checker")
-    
+
     # Parsers (each parser can have own arguments)
     # - subparsers (command)
     #   |- pkg_parser
@@ -109,6 +109,12 @@
         help="Do network check and print the result"
     )
 
+    net_check_parser.add_argument(
+        '--detailed',
+        action="store_true", default=False,
+        help="Print error details after summary"
+    )
+
     net_report_parser = net_subparsers.add_parser(
         'report',
         help="Generate network check report"
@@ -119,7 +125,7 @@
         metavar='network_html_filename',
         help="HTML filename to save report"
     )
-    
+
     # reclass
     reclass_parser = subparsers.add_parser(
         'reclass',
@@ -157,18 +163,16 @@
         help="HTML filename to save report"
     )
 
-
-
-    #parse arguments
+    # parse arguments
     try:
         args = parser.parse_args()
-    except TypeError as e:
+    except TypeError:
         logger_cli.info("\n# Please, check arguments")
         return
 
     # Pass externally configured values
     config.ssh_uses_sudo = args.sudo
-    
+
     # Handle options
     if args.debug:
         logger_cli.setLevel(DEBUG)
@@ -191,14 +195,18 @@
     else:
         # form function name to call
         _method_name = "do_" + args.type
-        _target_module = __import__("cfg_checker.modules."+args.command, fromlist=[""])
+        _target_module = __import__(
+            "cfg_checker.modules."+args.command,
+            fromlist=[""]
+        )
         _method = getattr(_target_module, _method_name)
-    
+
     # Execute the command
     result = _method(args)
 
     logger.debug(result)
 
+
 def cli_main():
     try:
         config_check_entrypoint()
@@ -216,5 +224,6 @@
             ))
         ))
 
+
 if __name__ == '__main__':
     cli_main()
