diff --git a/utils.py b/utils.py
index 8872c47..d95165a 100644
--- a/utils.py
+++ b/utils.py
@@ -9,6 +9,7 @@
 
 def singleton(class_):
     instances = {}
+
     def getinstance(*args, **kwargs):
         if class_ not in instances:
             instances[class_] = class_(*args, **kwargs)
@@ -49,6 +50,27 @@
     return wrap
 
 
+@singleton
+class TimeStamp(object):
+    def __init__(self, now=None):
+        # now='2015-06-18-104259'
+        self.snapshot_stamp_format = r'%Y-%m-%d-%H%M%S'
+        self.snapshot_stamp_regexp = r'[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}'
+
+        if now is None:
+            self.now = datetime.datetime.utcnow()
+        else:
+            self.now = datetime.datetime.strptime(now,
+                                                  self.snapshot_stamp_format)
+        self.snapshot_stamp = self.now.strftime(self.snapshot_stamp_format)
+
+    def __str__(self):
+        return self.snapshot_stamp
+
+    def reinit(self, *args, **kwagrs):
+        self.__init__(*args, **kwagrs)
+
+
 class ResultNotProduced(Exception):
     def __init__(self, value):
         self.value = value
