diff --git a/chart/charts.py b/chart/charts.py
index 331afae..d4ecfae 100644
--- a/chart/charts.py
+++ b/chart/charts.py
@@ -1,12 +1,24 @@
+import hashlib
+import os
+import threading
+
 from GChartWrapper import VerticalBarGroup
 from GChartWrapper import Line
 from GChartWrapper import constants
 
+from config import CHARTS_IMG_PATH
+
 
 COLORS = ["1569C7", "81D8D0", "307D7E", "5CB3FF", "blue", "indigo"]
 constants.MARKERS += 'E'  # append E marker to available markers
 
 
+def save_image(chart, img_path):
+    t = threading.Thread(target=chart.save, kwargs={'fname': img_path})
+    t.daemon = True
+    t.start()
+
+
 def render_vertical_bar(title, legend, dataset, width=700, height=400, scale_x=None,
                         scale_y=None):
     """
@@ -77,7 +89,12 @@
     bar.color(*COLORS[:len(values)])
     bar.size(width, height)
 
-    return bar
+    img_name = hashlib.md5(str(bar)).hexdigest() + ".png"
+    img_path = os.path.join(CHARTS_IMG_PATH, img_name)
+    if not os.path.exists(img_path):
+        save_image(bar, img_path)
+        return str(bar)
+    return img_path
 
 
 def render_lines(title, legend, dataset, scale_x, width=700, height=400):
@@ -93,4 +110,12 @@
     line.legend(*legend)
     line.color(*COLORS[:len(legend)])
     line.size(width, height)
-    return str(line)
+
+    import pdb;pdb.set_trace()
+
+    img_name = hashlib.md5(str(line)).hexdigest() + ".png"
+    img_path = os.path.join(CHARTS_IMG_PATH, img_name)
+    if not os.path.exists(img_path):
+        save_image(line, img_path)
+        return str(line)
+    return img_path
diff --git a/config.py b/config.py
index 56e641e..3ee6f20 100644
--- a/config.py
+++ b/config.py
@@ -8,4 +8,4 @@
 DEFAULT_FILE_PATH = "test.json"
 OUTPUT_FILE = "output.json"
 TEST_PATH = os.environ.get("TEST_PATH", os.path.dirname(__file__) + "/test_results")
-
+CHARTS_IMG_PATH = "images"
