diff --git a/hpvm/test/dnn_benchmarks/keras/Benchmark.py b/hpvm/test/dnn_benchmarks/keras/Benchmark.py
index 3d75feca580a325169f49ccf5a3d409a747b58ff..c225ff97661aef8f4fceb123b79190cb7c819dd7 100644
--- a/hpvm/test/dnn_benchmarks/keras/Benchmark.py
+++ b/hpvm/test/dnn_benchmarks/keras/Benchmark.py
@@ -24,21 +24,24 @@ class Benchmark:
         self.num_classes = num_classes
         self.batch_size = batch_size
         
-        
+    # Override function in subclass    
     def buildModel(self):
         return
 
+    # Override function in subclass
     def data_preprocess(self):
         return
-    
+
+    # Override function in subclass
     def trainModel(self, X_train, y_train, X_test, y_test):
         return
 
+    # Override function in subclass
     def inference(self):
         return
 
 
-    # Compiles frontend generated sources
+    # Common Function - Do not override in Subclasses
     def compileSource(self, working_dir, src_name, binary_name):
               
         src_file = os.getcwd() + "/" + working_dir + "/" + src_name   #  approxhpvm_src.cc"
@@ -80,8 +83,8 @@ class Benchmark:
         print ("Usage: python ${benchmark.py} [hpvm_reload|train] [frontend] [compile]")
         sys.exit(0)
 
-        
-    def run(self, argv):
+    # Common Function for Exporting to HPVM Modules - Do not Override in Subclasses    
+    def exportToHPVM(self, argv):
 
       if len(argv) < 2:
           self.printUsage()
@@ -154,9 +157,6 @@ class Benchmark:
           model.save_weights(self.keras_model_file)
 
           
-      #elif len(argv) > 2:
-      #  self.printUsage()
-            
 
     
 
diff --git a/hpvm/test/dnn_benchmarks/keras/alexnet.py b/hpvm/test/dnn_benchmarks/keras/alexnet.py
index 86019e80e5a713d711b9d9c6e45cf91d4b01b9a5..d6e7f98c4375fcb603c1f9549ea931410d7423ad 100644
--- a/hpvm/test/dnn_benchmarks/keras/alexnet.py
+++ b/hpvm/test/dnn_benchmarks/keras/alexnet.py
@@ -153,6 +153,6 @@ if __name__ == '__main__':
     model = AlexNet_CIFAR10('AlexNet_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
 
     # This invokes the common run function in src/Benchmark.py 
-    model.run(sys.argv)
+    model.exportToHPVM(sys.argv)
 
     
diff --git a/hpvm/test/dnn_benchmarks/keras/alexnet2.py b/hpvm/test/dnn_benchmarks/keras/alexnet2.py
index 16bd92b23e3659be2f851d14e5030b8a436c3ac2..22b499d577a3b42866465614cca4d2fd71e87942 100644
--- a/hpvm/test/dnn_benchmarks/keras/alexnet2.py
+++ b/hpvm/test/dnn_benchmarks/keras/alexnet2.py
@@ -144,4 +144,4 @@ if __name__ == '__main__':
 
     model = AlexNet2_CIFAR10('AlexNet2_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
-    model.run(sys.argv)
+    model.exportToHPVM(sys.argv)
diff --git a/hpvm/test/dnn_benchmarks/keras/alexnet_imagenet.py b/hpvm/test/dnn_benchmarks/keras/alexnet_imagenet.py
index 9f5bbe12c93f667cae3bec37089a83b51df5311e..e23fef741715be9791c1aba0210a27ef5b947934 100644
--- a/hpvm/test/dnn_benchmarks/keras/alexnet_imagenet.py
+++ b/hpvm/test/dnn_benchmarks/keras/alexnet_imagenet.py
@@ -101,7 +101,7 @@ if __name__ == '__main__':
 
     model = AlexNet('AlexNet_Imagenet', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
-    model.run(sys.argv)
+    model.exportToHPVM(sys.argv)
 
 
     
diff --git a/hpvm/test/dnn_benchmarks/keras/lenet.py b/hpvm/test/dnn_benchmarks/keras/lenet.py
index e158d709136f3d593a74aa8bc770faa1bd59707f..83f76ef306c31c25d1f1e961ab1922e89c217b28 100644
--- a/hpvm/test/dnn_benchmarks/keras/lenet.py
+++ b/hpvm/test/dnn_benchmarks/keras/lenet.py
@@ -112,4 +112,4 @@ if __name__ == '__main__':
 
     model = LeNet_MNIST('LeNet_MNIST', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
-    model.run(sys.argv)
+    model.exportToHPVM(sys.argv)
diff --git a/hpvm/test/dnn_benchmarks/keras/mobilenet_cifar10.py b/hpvm/test/dnn_benchmarks/keras/mobilenet_cifar10.py
index 83b04445221d8826f62699a7fc2e45310654e857..a236e0305f6f09bfa5d3335f405e6d3fb337894d 100644
--- a/hpvm/test/dnn_benchmarks/keras/mobilenet_cifar10.py
+++ b/hpvm/test/dnn_benchmarks/keras/mobilenet_cifar10.py
@@ -190,5 +190,5 @@ if __name__ == '__main__':
 
     model = MobileNet_CIFAR10('MobileNet_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
-    model.run(sys.argv)
+    model.exportToHPVM(sys.argv)
 
diff --git a/hpvm/test/dnn_benchmarks/keras/resnet18_cifar10.py b/hpvm/test/dnn_benchmarks/keras/resnet18_cifar10.py
index 8ef31e3ff6dc2f252dbfa50fb557449220d01f39..9e8c23cdc6df6bb168257fa69cfba6015e9569f2 100644
--- a/hpvm/test/dnn_benchmarks/keras/resnet18_cifar10.py
+++ b/hpvm/test/dnn_benchmarks/keras/resnet18_cifar10.py
@@ -562,5 +562,5 @@ if __name__ == '__main__':
 
     model = ResNet18_CIFAR10('ResNet18_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
-    model.run(sys.argv)
+    model.exportToHPVM(sys.argv)
     
diff --git a/hpvm/test/dnn_benchmarks/keras/resnet50_imagenet.py b/hpvm/test/dnn_benchmarks/keras/resnet50_imagenet.py
index c1632750a91dc85815da15a1d0df718d00073311..9ac71337b94899002296b736469d480083f7b7ad 100644
--- a/hpvm/test/dnn_benchmarks/keras/resnet50_imagenet.py
+++ b/hpvm/test/dnn_benchmarks/keras/resnet50_imagenet.py
@@ -149,7 +149,7 @@ if __name__ == '__main__':
 
     model = ResNet50('ResNet50_imagenet', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
-    model.run(sys.argv)
+    model.exportToHPVM(sys.argv)
 
 
     
diff --git a/hpvm/test/dnn_benchmarks/keras/test_benchmarks.py b/hpvm/test/dnn_benchmarks/keras/test_benchmarks.py
index 27fceb44d2466604f4536561c7786407f3c571eb..2d4b8afab532d7632de9968236690bc63798fc1e 100644
--- a/hpvm/test/dnn_benchmarks/keras/test_benchmarks.py
+++ b/hpvm/test/dnn_benchmarks/keras/test_benchmarks.py
@@ -1,6 +1,7 @@
 
 
 import os
+import sys
 import subprocess
 
 import site
@@ -197,17 +198,25 @@ class BenchmarkTests:
             
 if __name__ == "__main__":
 
+    if len(sys.argv) < 2:
+        print ("Usage: python3 test_dnnbenchmarks.py ${work_dir}")
+
+    work_dir = sys.argv[1]
+    if not os.path.exists(work_dir):
+        os.mkdir(work_dir)
+    os.chdir(work_dir)
+    
     testMgr = BenchmarkTests()
-    AlexNet = Benchmark("alexnet.py", 79.28)
-    AlexNet_ImageNet = Benchmark("alexnet_imagenet.py", 56.30)
-    AlexNet2 = Benchmark("alexnet2.py", 84.98)
-    LeNet = Benchmark("lenet.py", 98.70)
-    MobileNet = Benchmark("mobilenet_cifar10.py", 84.42)
-    ResNet18 = Benchmark("resnet18_cifar10.py", 89.56)
-    ResNet50 = Benchmark("resnet50_imagenet.py", 75.10)
-    VGG16_cifar10 = Benchmark("vgg16_cifar10.py", 89.96)
-    VGG16_cifar100 = Benchmark("vgg16_cifar100.py", 66.50)
-    VGG16_ImageNet = Benchmark("vgg16_imagenet.py", 69.46)
+    AlexNet = Benchmark("../alexnet.py", 79.28)
+    AlexNet_ImageNet = Benchmark("../alexnet_imagenet.py", 56.30)
+    AlexNet2 = Benchmark("../alexnet2.py", 84.98)
+    LeNet = Benchmark("../lenet.py", 98.70)
+    MobileNet = Benchmark("../mobilenet_cifar10.py", 84.42)
+    ResNet18 = Benchmark("../resnet18_cifar10.py", 89.56)
+    ResNet50 = Benchmark("../resnet50_imagenet.py", 75.10)
+    VGG16_cifar10 = Benchmark("../vgg16_cifar10.py", 89.96)
+    VGG16_cifar100 = Benchmark("../vgg16_cifar100.py", 66.50)
+    VGG16_ImageNet = Benchmark("../vgg16_imagenet.py", 69.46)
 
     testMgr.addBenchmark(AlexNet)
     #testMgr.addBenchmark(AlexNet_ImageNet)
diff --git a/hpvm/test/dnn_benchmarks/keras/vgg16_cifar10.py b/hpvm/test/dnn_benchmarks/keras/vgg16_cifar10.py
index 9f298ebfa6a385bbeee48a2bbf6c193d8849a4d9..03563cba8a79a58ef4cc9e04160f2ae6aaca2974 100644
--- a/hpvm/test/dnn_benchmarks/keras/vgg16_cifar10.py
+++ b/hpvm/test/dnn_benchmarks/keras/vgg16_cifar10.py
@@ -192,6 +192,6 @@ if __name__ == '__main__':
 
     model = VGG16_CIFAR10('VGG16_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
-    model.run(sys.argv)
+    model.exportToHPVM(sys.argv)
 
     
diff --git a/hpvm/test/dnn_benchmarks/keras/vgg16_cifar100.py b/hpvm/test/dnn_benchmarks/keras/vgg16_cifar100.py
index 4f6168d0f022223b2f355791f2bd7b11d5e04440..716b441706f26008aae9e30c96cad23fcd0b398e 100644
--- a/hpvm/test/dnn_benchmarks/keras/vgg16_cifar100.py
+++ b/hpvm/test/dnn_benchmarks/keras/vgg16_cifar100.py
@@ -207,5 +207,5 @@ if __name__ == '__main__':
 
     model = VGG16_CIFAR100('VGG16_CIFAR100', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
-    model.run(sys.argv)
+    model.exportToHPVM(sys.argv)
     
diff --git a/hpvm/test/dnn_benchmarks/keras/vgg16_imagenet.py b/hpvm/test/dnn_benchmarks/keras/vgg16_imagenet.py
index c84b429407cf491c5d6f4b6cb30b1c34e971612c..bcba54717484b53687497dc471a1c257793bdf47 100644
--- a/hpvm/test/dnn_benchmarks/keras/vgg16_imagenet.py
+++ b/hpvm/test/dnn_benchmarks/keras/vgg16_imagenet.py
@@ -134,7 +134,7 @@ if __name__ == '__main__':
 
     alexnet = VGG16('VGG16_imagenet', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
-    alexnet.run(sys.argv)
+    alexnet.exportToHPVM(sys.argv)