diff --git a/python.d/beanstalk.chart.py b/python.d/beanstalk.chart.py
index c8413ae60b..9ab729710e 100644
--- a/python.d/beanstalk.chart.py
+++ b/python.d/beanstalk.chart.py
@@ -2,8 +2,6 @@
 # Description: beanstalk netdata python.d module
 # Author: l2isbad
 
-from collections import defaultdict
-
 try:
     import beanstalkc
     BEANSTALKC = True
@@ -168,9 +166,9 @@ class Service(SimpleService):
     def __init__(self, configuration=None, name=None):
         SimpleService.__init__(self, configuration=configuration, name=name)
         self.configuration = configuration
-        self.conn = None
-        self.order = ORDER[:]
+        self.order = list(ORDER)
         self.definitions = dict(CHARTS)
+        self.conn = None
         self.alive = True
 
     def check(self):
@@ -184,15 +182,7 @@ class Service(SimpleService):
 
         self.conn = self.connect()
 
-        if not self.conn:
-            return False
-
-        for tube in self.conn.tubes():
-            order, charts = tube_chart_template(tube)
-            self.order.extend(order)
-            self.definitions.update(charts)
-
-        return bool(self.order)
+        return True if self.conn else False
 
     def get_data(self):
         """
@@ -202,27 +192,25 @@ class Service(SimpleService):
         if not self.is_alive():
             return None
 
-        tubes_stats, data = defaultdict(dict), dict()
+        active_charts = self.charts.active_charts()
+        data = dict()
+
         try:
             data.update(self.conn.stats())
 
             for tube in self.conn.tubes():
                 stats = self.conn.stats_tube(tube)
+
+                if tube + '_jobs_rate' not in active_charts:
+                    self.create_new_tube_charts(tube)
+
                 for stat in stats:
-                    dimension, value = '_'.join([tube, stat]),  stats[stat]
-                    tubes_stats[tube][dimension] = value
+                    data['_'.join([tube, stat])] = stats[stat]
 
         except beanstalkc.SocketError:
             self.alive = False
             return None
 
-        active_charts = self.charts.active_charts()
-        for tube in tubes_stats:
-            if tube + '_jobs_rate' not in active_charts:
-                self.create_new_tube_charts(tube)
-
-            data.update(tubes_stats[tube])
-
         return data or None
 
     def create_new_tube_charts(self, tube):