Index: stamper/stamper.py
===================================================================
--- stamper/stamper.py	(revision 40)
+++ stamper/stamper.py	(revision 43)
@@ -2,13 +2,14 @@
 import json
 import re
-import pygal
+import os.path
 from datetime import datetime, date, timedelta
-from os.path import expanduser, exists, islink, isdir
-from os import symlink, remove
+from os import symlink, remove, makedirs
 from collections import OrderedDict
 from operator import itemgetter
-
-
-STAMPS_FILE = expanduser('~/.workstamps.json')
+import pygal
+
+
+STAMPS_FILE = os.path.expanduser('~/.workstamps.json')
+CHARTS_DIR = os.path.expanduser('~/.workstamps-charts')
 DATE_FORMAT = '%Y-%m-%d'
 TIME_FORMAT = '%H:%M:%S'
@@ -20,7 +21,9 @@
 class Stamper(object):
 
-    def __init__(self, stamps_file=STAMPS_FILE):
-        self.stamps_file = STAMPS_FILE
+    def __init__(self, stamps_file=STAMPS_FILE, charts_dir=CHARTS_DIR):
+        self.stamps_file = stamps_file
+        self.charts_dir = charts_dir
         self.ensure_stamps_file()
+        self.ensure_charts_dir()
         self.stamps = []
 
@@ -46,7 +49,11 @@
 
     def ensure_stamps_file(self):
-        if not exists(self.stamps_file):
+        if not os.path.exists(self.stamps_file):
             with open(self.stamps_file, 'w') as stamps_file:
                 stamps_file.write('')
+
+    def ensure_charts_dir(self):
+        if not os.path.exists(self.charts_dir):
+            makedirs(self.charts_dir)
 
     def load_stamps(self):
@@ -304,8 +311,13 @@
             '%Y-%m-%d_%H%M%S')
         chart_symlink = 'chart-latest.svg'
-        chart.render_to_file('graphs/' + chart_name)
-        if islink('graphs/'+ chart_symlink):
-            remove('graphs/'+ chart_symlink)
-        symlink(chart_name, 'graphs/'+ chart_symlink)
+        chart_path = os.path.join(self.charts_dir, chart_name)
+        chart_symlink_path = os.path.join(self.charts_dir, chart_symlink)
+
+        chart.render_to_file(chart_path)
+        print('Rendered chart: ' + chart_path)
+        if os.path.islink(chart_symlink_path):
+            remove(chart_symlink_path)
+        symlink(chart_name, chart_symlink_path)
+        print('Updated latest chart: ' + chart_symlink_path)
 
     def show_stamps(self, customer=None, stamp_filter=None, verbose=False,
@@ -399,8 +411,8 @@
         merging them into the list (removing duplicated entries)
         """
-        if not exists(filename):
+        if not os.path.exists(filename):
             print('[error] ' + filename + 'does not exist')
             return
-        if isdir(filename):
+        if os.path.isdir(filename):
             print('[error] ' + filename + 'is a directory')
             return
