diff --git a/src/test/cord-api/Framework/utils/utils.py b/src/test/cord-api/Framework/utils/utils.py
index c5586fe..bb825a0 100644
--- a/src/test/cord-api/Framework/utils/utils.py
+++ b/src/test/cord-api/Framework/utils/utils.py
@@ -26,6 +26,7 @@
 import random
 import re
 import yaml
+import glob
 
 class utils(object):
 
@@ -41,6 +42,19 @@
         dataList = data[strListName]
         return dataList
 
+    def readFile(self, path, single=True):
+        dataDict = {}
+        for fileName in glob.glob(path):
+            print "Reading ", fileName
+            data = open(fileName).read()
+            dataDict[fileName] = data
+            if bool(single):
+                return data
+        return dataDict
+
+    def readFiles(self, path):
+        return self.readFile(path, single=False)
+
     '''
     @method compare_dict
     @Description: validates if contents of dict1 exists in dict2
@@ -260,37 +274,3 @@
             names['name']=i
             dnames.append(names.copy())
         return dnames
-
-'''
-#Test
-dict_list = {
- "humanReadableName": "cordSubscriber-17",
-        "id": 17,
-        "features": {
-            "uplink_speed": 1000000000,
-            "downlink_speed": 1000000000,
-            "status": "enabled"
-        },
-        "identity": {
-            "account_num": "20",
-            "name": "My House"
-        },
-        "related": {}
-    }
-input_dict = {
- "s_tag" : "111",
- "c_tag" : "222",
- "subscriber" : ""
- }
-new_value = 3
-test = utils()
-#data=test.jsonToList("Subscribers.json","SubscriberInfo")
-#print  test.jsonToList("Subscribers.json","SubscriberInfo")
-#print "index 1...",test.listToDict(data,1)
-#result = test.getDictFromListOfDict(dict_list,"email",21)
-#result = test.getFieldValueFromDict(dict_list,"id")
-#result = test.getDictFromListOfDict(dict_list,"account_num",21)
-#result = test.setFieldValueInDict(input_dict,"subscriber",new_value)
-result = test.getAllFieldValues(list1,"instance_name")
-print "finalllllll result....", result
-'''
