diff --git a/minindn/helpers/experiment.py b/minindn/helpers/experiment.py
index a29272a..910b239 100644
--- a/minindn/helpers/experiment.py
+++ b/minindn/helpers/experiment.py
@@ -28,7 +28,8 @@
 from mininet.log import info
 
 from minindn.helpers.nfdc import Nfdc
-from minindn.helpers.ndnpingclient import NDNPingClient
+from minindn.helpers.ndnping import NDNPing
+from minindn.util import getSafeName
 
 class Experiment(object):
     @staticmethod
@@ -70,7 +71,8 @@
         for host in hosts:
             host.cmd('mkdir -p ping-data')
             Nfdc.setStrategy(host, '/ndn/', strategy)
-            host.cmd('ndnpingserver /ndn/{}-site/{} > ping-server &'.format(host.name, host.name))
+            prefix = getSafeName('/ndn/{}-site/{}'.format(host.name, host.name))
+            NDNPing.startPingServer(host, prefix)
 
     @staticmethod
     def startPctPings(net, nPings, pctTraffic=1.0):
@@ -95,7 +97,8 @@
 
                 # Do not ping self
                 if host.name != other.name:
-                    NDNPingClient.ping(host, other, nPings)
+                    destPrefix = getSafeName('/ndn/{}-site/{}'.format(other.name, other.name))
+                    NDNPing.ping(host, destPrefix, other.name, nPings)
                     nodesPingedList.append(other)
 
                 # Always increment because in 100% case a node should not ping itself
diff --git a/minindn/helpers/ndnping.py b/minindn/helpers/ndnping.py
new file mode 100644
index 0000000..5d2f3d4
--- /dev/null
+++ b/minindn/helpers/ndnping.py
@@ -0,0 +1,71 @@
+# -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+#
+# Copyright (C) 2015-2020, The University of Memphis,
+#                          Arizona Board of Regents,
+#                          Regents of the University of California.
+#
+# This file is part of Mini-NDN.
+# See AUTHORS.md for a complete list of Mini-NDN authors and contributors.
+#
+# Mini-NDN is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Mini-NDN is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Mini-NDN, e.g., in COPYING.md file.
+# If not, see <http://www.gnu.org/licenses/>.
+
+import time
+
+# Todo: convert to app
+
+class NDNPing(object):
+    @staticmethod
+    def ping(source, prefix, pingDataFile="output-client", nPings=1, interval=None, timeout=None,
+            starting_seq_num=None, identifier=None, allow_stale_data=False, print_timestamp=True, sleepTime=0.2):
+        print('Scheduling ping(s) from {} for {}'.format(source.name, prefix))
+        # Use '&' to run in background and perform parallel pings
+        source.cmd("mkdir -p ping-data")
+        source.cmd('ndnping{1}{2}{3}{4}{5}{6}{7} {0} >> ping-data/{8}.txt &'
+        .format(
+            prefix,
+            ' -c {}'.format(nPings),
+            ' -i {}'.format(interval) if interval else '',
+            ' -o {}'.format(timeout) if timeout  else '',
+            ' -n {}'.format(starting_seq_num) if starting_seq_num else '',
+            ' -p {}'.format(identifier) if identifier else '',
+            ' -a' if allow_stale_data else '',
+            ' -t' if print_timestamp else '',
+            pingDataFile
+        ))
+        time.sleep(sleepTime)
+
+    def startPingServer(source, prefix, pingDataFile="output-server", freshness=None, satisfy=None, 
+            size=None, timestamp=False, quiet=False):
+        """
+        Start a pingserver
+         :param string preifx: prefix to start pingserver on
+         :param int freshness: FreshnessPeriod of the ping response, in milliseconds
+         :param int satisfy: maximum number of pings to satisfy
+         :param int size: size of response payload
+         :param boolean timestamp: prepend a timestamp to each log message
+         :param boolean quite: do not print a log message each time a ping packet is received
+        """
+        print('Staring ping server on prefix {}'.format(prefix))
+        source.cmd("mkdir -p ping-data")
+        cmd = 'ndnpingserver {1}{2}{3}{4}{5} {0}>> ping-data/{6}.txt &'.format(
+            prefix,
+            '-f {}'.format(freshness) if freshness else '',
+            '-p {}'.format(satisfy) if satisfy else '',
+            '-s {}'.format(size) if size else '',
+            '{}'.format('-t') if timestamp else '',
+            '{}'.format('-q') if quiet else '',
+            pingDataFile
+        )
+        source.cmd(cmd)
\ No newline at end of file
diff --git a/minindn/helpers/ndnpingclient.py b/minindn/helpers/ndnpingclient.py
deleted file mode 100644
index a252a58..0000000
--- a/minindn/helpers/ndnpingclient.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-#
-# Copyright (C) 2015-2020, The University of Memphis,
-#                          Arizona Board of Regents,
-#                          Regents of the University of California.
-#
-# This file is part of Mini-NDN.
-# See AUTHORS.md for a complete list of Mini-NDN authors and contributors.
-#
-# Mini-NDN is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Mini-NDN is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Mini-NDN, e.g., in COPYING.md file.
-# If not, see <http://www.gnu.org/licenses/>.
-
-import time
-
-# Todo: convert to app
-
-class NDNPingClient(object):
-    @staticmethod
-    def ping(source, prefix, nPings=1, interval=None, timeout=None, starting_seq_num=None,
-             identifier=None, allow_stale_data=False, print_timestamp=True, sleepTime=0.2):
-        print('Scheduling ping(s) from {} for {}'.format(source.name, prefix))
-        # Use '&' to run in background and perform parallel pings
-        source.cmd("mkdir ping-data")
-        source.cmd('ndnping{1}{2}{3}{4}{5}{6}{7} {0} >> ping-data/{8}.txt &'
-        .format(
-            prefix,
-            ' -c {}'.format(nPings),
-            ' -i {}'.format(interval) if interval else '',
-            ' -o {}'.format(timeout) if timeout  else '',
-            ' -n {}'.format(starting_seq_num) if starting_seq_num else '',
-            ' -p {}'.format(identifier) if identifier else '',
-            ' -a' if allow_stale_data else '',
-            ' -t' if print_timestamp else '',
-            str.replace(prefix[1:], "/", "-")
-        ))
-        time.sleep(sleepTime)
diff --git a/minindn/util.py b/minindn/util.py
index 82fcdac..b7d060c 100644
--- a/minindn/util.py
+++ b/minindn/util.py
@@ -24,6 +24,8 @@
 import sys
 from os.path import isfile
 from subprocess import call
+from six.moves.urllib.parse import quote
+
 from mininet.cli import CLI
 from mn_wifi.cli import CLI as CLI_wifi
 
@@ -31,6 +33,17 @@
 scpbase = ['scp', '-i', '/home/mininet/.ssh/id_rsa']
 devnull = open('/dev/null', 'w')
 
+def getSafeName(namePrefix):
+    """
+    Check if the prefix/string is safe to use with ndn commands or not.
+        return safe prefix.
+    :param namePrefix: name of the prefix
+    """
+    # remove redundant "/"es, multiple "/"es are an invalid representation for empty name component
+    # https://named-data.net/doc/NDN-packet-spec/current/changelog.html#version-0-3
+    namePrefix= "/" + ("/".join(filter(None, namePrefix.split("/"))))
+    return quote(namePrefix, safe='/')
+
 def ssh(login, cmd):
     rcmd = sshbase + [login, cmd]
     call(rcmd, stdout=devnull, stderr=devnull)
@@ -80,4 +93,4 @@
 class MiniNDNWifiCLI(CLI_wifi):
     prompt = 'mini-ndn-wifi> '
     def __init__(self, mininet, stdin=sys.stdin, script=None):
-        CLI_wifi.__init__(self, mininet, stdin, script)
\ No newline at end of file
+        CLI_wifi.__init__(self, mininet, stdin, script)
