diff --git a/cfg_checker/nodes.py b/cfg_checker/nodes.py
index ec20f6a..c261752 100644
--- a/cfg_checker/nodes.py
+++ b/cfg_checker/nodes.py
@@ -35,7 +35,7 @@
         try:
             _keys = self.salt.list_keys()
             _str = []
-            for _k, _v in _keys.iteritems():
+            for _k, _v in _keys.items():
                 _str.append("{}: {}".format(_k, len(_v)))
             logger_cli.info("-> keys collected: {}".format(", ".join(_str)))
 
@@ -92,10 +92,12 @@
             )
         )
         # get master node fqdn
-        _filtered = filter(
-            lambda nd: self.nodes[nd]['role'] == const.all_roles_map['cfg'],
-            self.nodes
-        )
+        # _filtered = filter(
+        #     lambda nd: self.nodes[nd]['role'] == const.all_roles_map['cfg'],
+        #     self.nodes
+        # )
+        _role = const.all_roles_map['cfg']
+        _filtered = [n for n, v in self.nodes.items() if v['role'] == _role]
         if len(_filtered) < 1:
             raise SaltException(
                 "No master node detected! Check/Update node role map."
@@ -161,7 +163,7 @@
         else:
             _nodes = self.nodes
         _result = self.execute_cmd_on_active_nodes(cmd, nodes=nodes)
-        for node, data in _nodes.iteritems():
+        for node, data in _nodes.items():
 
             if node in self.skip_list:
                 logger_cli.debug(
@@ -200,7 +202,7 @@
         )
         _result = self.salt.pillar_get(self.active_nodes_compound, pillar_path)
         self.not_responded = []
-        for node, data in self.nodes.iteritems():
+        for node, data in self.nodes.items():
             if node in self.skip_list:
                 logger_cli.debug(
                     "... '{}' skipped while collecting '{}'".format(
