diff --git a/examples/ping-demo.py b/examples/ping-demo.py
index 550c0df..5db8087 100644
--- a/examples/ping-demo.py
+++ b/examples/ping-demo.py
@@ -80,7 +80,7 @@
 
     # Start ping server
     info("Starting pings...\n")
-    pingserver_log = open("/tmp/minindn/c/ndnpingserver.log", "w")
+    pingserver_log = open("{}/c/ndnpingserver.log".format(ndn.workDir), "w")
     getPopen(ndn.net["c"], "ndnpingserver {}".format(PREFIX), stdout=pingserver_log,\
              stderr=pingserver_log)
 
diff --git a/examples/psync/full_sync.py b/examples/psync/full_sync.py
index d256a3b..d74a284 100644
--- a/examples/psync/full_sync.py
+++ b/examples/psync/full_sync.py
@@ -68,7 +68,7 @@
     time.sleep(300)
 
     totalUpdates = int(host.cmd('grep -r Update {}/*/psync.logs | wc -l'
-                                .format(args.workDir)))
+                                .format(ndn.workDir)))
 
     expectedUpdates = (maxUpdatesPerUserPrefixPerNode *
                       len(ndn.net.hosts) * (len(ndn.net.hosts) - 1) * numUserPrefixesPerNode)
diff --git a/examples/traffic_generator.py b/examples/traffic_generator.py
index 48bbd07..d67e7e2 100644
--- a/examples/traffic_generator.py
+++ b/examples/traffic_generator.py
@@ -25,7 +25,7 @@
 """
 This example demonstrates the functionality of the Traffic generator. It consists of a traffic
 server and client. The server will listen for interest on the prefix specified in the server
-configuration file. The client will send a designated number of interests to the server and 
+configuration file. The client will send a designated number of interests to the server and
 get the data back.
 More details on traffic generator here: https://github.com/named-data/ndn-traffic-generator
 """
@@ -91,8 +91,8 @@
     # lets make node "a" as a traffic-server node, and node "c" as a traffic-client node
     server  = ndn.net['a']
     client = ndn.net['c']
-    serverConf = '{}/{}/server-conf'.format(ndn.args.workDir, server.name)
-    clientConf = '{}/{}/client-conf'.format(ndn.args.workDir, client.name)
+    serverConf = '{}/{}/server-conf'.format(ndn.workDir, server.name)
+    clientConf = '{}/{}/client-conf'.format(ndn.workDir, client.name)
 
     copyExistentFile(server, possibleServerConfPath, serverConf)
     copyExistentFile(server, possibleClientConfPath, clientConf)
diff --git a/minindn/minindn.py b/minindn/minindn.py
index c710d52..10dbcb4 100644
--- a/minindn/minindn.py
+++ b/minindn/minindn.py
@@ -55,7 +55,7 @@
     resultDir = None
 
     def __init__(self, parser=argparse.ArgumentParser(), topo=None, topoFile=None, noTopo=False,
-                 link=TCLink, **mininetParams):
+                 link=TCLink, workDir=None, **mininetParams):
         """
         Create MiniNDN object
         :param parser: Parent parser of Mini-NDN parser
@@ -70,7 +70,11 @@
         self.parser = Minindn.parseArgs(parser)
         self.args = self.parser.parse_args()
 
-        Minindn.workDir = os.path.abspath(self.args.workDir)
+        if not workDir:
+            Minindn.workDir = os.path.abspath(self.args.workDir)
+        else:
+            Minindn.workDir = os.path.abspath(workDir)
+
         Minindn.resultDir = self.args.resultDir
 
         if not topoFile:
diff --git a/minindn/wifi/minindnwifi.py b/minindn/wifi/minindnwifi.py
index c403fc4..54b4aad 100644
--- a/minindn/wifi/minindnwifi.py
+++ b/minindn/wifi/minindnwifi.py
@@ -21,6 +21,7 @@
 # along with Mini-NDN, e.g., in COPYING.md file.
 # If not, see <http://www.gnu.org/licenses/>.
 
+import os
 import argparse
 import sys
 import configparser
@@ -36,7 +37,7 @@
 
 class MinindnWifi(Minindn):
     """ Class for handling default args, Mininet-wifi object and home directories """
-    def __init__(self, parser=argparse.ArgumentParser(), topo=None, topoFile=None, noTopo=False, link=WirelessLink, **mininetParams):
+    def __init__(self, parser=argparse.ArgumentParser(), topo=None, topoFile=None, noTopo=False, link=WirelessLink, workDir=None, **mininetParams):
         """Create Mini-NDN-Wifi object
         parser: Parent parser of Mini-NDN-Wifi parser (use to specify experiment arguments)
         topo: Mininet topo object (optional)
@@ -48,7 +49,11 @@
         self.parser = self.parseArgs(parser)
         self.args = self.parser.parse_args()
 
-        Minindn.workDir = self.args.workDir
+        if not workDir:
+            Minindn.workDir = os.path.abspath(self.args.workDir)
+        else:
+            Minindn.workDir = os.path.abspath(workDir)
+
         Minindn.resultDir = self.args.resultDir
 
         self.topoFile = None
