Fixed charts
diff --git a/chart/__init__.py b/chart/__init__.py
index e69de29..91f24c6 100644
--- a/chart/__init__.py
+++ b/chart/__init__.py
@@ -0,0 +1,9 @@
+# Patch MARKER constant
+
+import sys
+from GChartWrapper import constants
+import GChartWrapper.GChart
+
+constants.MARKERS += 'E'
+print sys.modules['GChartWrapper.GChart']
+sys.modules['GChartWrapper.GChart'].MARKERS += 'E'
diff --git a/chart/charts.py b/chart/charts.py
index f985526..549b820 100644
--- a/chart/charts.py
+++ b/chart/charts.py
@@ -19,7 +19,9 @@
     t.start()
 
 
-def render_vertical_bar(title, legend, dataset, width=700, height=400,
+def render_vertical_bar(title, legend, bars_data, bars_dev_top,
+                        bars_dev_bottom,
+                        width=700, height=400,
                         scale_x=None, scale_y=None, label_x=None,
                         label_y=None, lines=()):
     """
@@ -57,49 +59,37 @@
     bar = VerticalBarGroup([], encoding='text')
     bar.title(title)
 
-    values = []
-    deviations = []
+    dataset = bars_data + bars_dev_top + bars_dev_bottom + [lines[0][0]]
 
-    for d in dataset:
-        val, dev = zip(*d)
-
-        display_dev = []
-        for i in range(len(val)):
-            display_dev.append((val[i]-dev[i], val[i]+dev[i]))
-        values.append(val)
-        # deviations.extend(zip(*dev))
-        deviations.extend(zip(*display_dev))
-
-    # bar.dataset(values + deviations, series=len(values))
-    bar.dataset(values + deviations + [l[0] for l in lines],
-                series=len(values))
+    bar.dataset(dataset, series=len(bars_data))
     bar.axes.type('xyy')
     bar.axes.label(2, None, label_x)
     if scale_x:
         bar.axes.label(0, *scale_x)
 
-    max_value = (max([max(l) for l in values + deviations + [lines[1][0]]]))
+    max_value = (max([max(l) for l in dataset[:2]]))
     bar.axes.range(1, 0, max_value)
     bar.axes.style(1, 'N*s*')
     bar.axes.style(2, '000000', '13')
 
-    bar.scale(*[0, max_value] * len(values + deviations))
+    bar.scale(*[0, max_value] * 3)
 
     bar.bar('r', '.1', '1')
     for i in range(1):
-        bar.marker('E', '000000', '%s:%s' % ((len(values) + i*2), i),
+        bar.marker('E', '000000', '%s:%s' % ((len(bars_data) + i*2), i),
                    '', '1:10')
     bar.color(*COLORS)
     bar.size(width, height)
 
     axes_type = "xyy"
 
-    scale = [0, max_value] * len(values + deviations)
+    scale = [0, max_value] * len(bars_dev_top + bars_dev_bottom + bars_data)
     if lines:
         line_n = 0
         for data, label, axe, leg in lines:
-            bar.marker('D', COLORS[len(values) + line_n],
-                       (len(values + deviations)) + line_n, 0, 3)
+            bar.marker('D', COLORS[len(bars_data) + line_n],
+                       (len(bars_data + bars_dev_top + bars_dev_bottom))
+                       + line_n, 0, 3)
             max_val_l = max(data)
             if axe:
                 bar.axes.type(axes_type + axe)