diff --git a/ndn/experiments/convergence_experiment.py b/ndn/experiments/convergence_experiment.py
index c67b184..f95da58 100644
--- a/ndn/experiments/convergence_experiment.py
+++ b/ndn/experiments/convergence_experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2017, The University of Memphis,
+# Copyright (C) 2015-2018, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/ndn/experiments/experiment.py b/ndn/experiments/experiment.py
index 5ada588..fa76370 100644
--- a/ndn/experiments/experiment.py
+++ b/ndn/experiments/experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2017, The University of Memphis,
+# Copyright (C) 2015-2018, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
@@ -23,6 +23,7 @@
 
 import time
 import sys
+from ndn.apps.ndn_ping_client import NDNPingClient
 from itertools import cycle
 
 from ndn import ExperimentManager
@@ -91,18 +92,12 @@
             self.net.stop()
             sys.exit(1)
 
-    def ping(self, source, dest, nPings):
-        # Use "&" to run in background and perform parallel pings
-        print "Scheduling ping(s) from %s to %s" % (source.name, dest.name)
-        source.cmd("ndnping -t -c "+ str(nPings) + " /ndn/" + dest.name + "-site/" + dest.name + " >> ping-data/" + dest.name + ".txt &")
-        time.sleep(0.2)
-
     def startPings(self):
         for host in self.net.hosts:
             for other in self.net.hosts:
                 # Do not ping self
                 if host.name != other.name:
-                    self.ping(host, other, self.nPings)
+                    NDNPingClient.ping(host, other, self.nPings)
 
     def failNode(self, host):
         print("Bringing %s down" % host.name)
@@ -137,7 +132,7 @@
 
                 # Do not ping self
                 if host.name != other.name:
-                    self.ping(host, other, self.nPings)
+                    NDNPingClient.ping(host, other, self.nPings)
                     nodesPingedList.append(other)
 
                 # Always increment because in 100% case a node should not ping itself
diff --git a/ndn/experiments/failure_experiment.py b/ndn/experiments/failure_experiment.py
index 8397836..b25cbfe 100644
--- a/ndn/experiments/failure_experiment.py
+++ b/ndn/experiments/failure_experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2017, The University of Memphis,
+# Copyright (C) 2015-2018, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/ndn/experiments/mcn_failure_convergence_experiment.py b/ndn/experiments/mcn_failure_convergence_experiment.py
index aced2dc..376d91f 100644
--- a/ndn/experiments/mcn_failure_convergence_experiment.py
+++ b/ndn/experiments/mcn_failure_convergence_experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2017, The University of Memphis,
+# Copyright (C) 2015-2018, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/ndn/experiments/mcn_failure_experiment.py b/ndn/experiments/mcn_failure_experiment.py
index bd85eff..019c214 100644
--- a/ndn/experiments/mcn_failure_experiment.py
+++ b/ndn/experiments/mcn_failure_experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2017, The University of Memphis,
+# Copyright (C) 2015-2018, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/ndn/experiments/multiple_failure_experiment.py b/ndn/experiments/multiple_failure_experiment.py
index 4fc8e8c..0836949 100644
--- a/ndn/experiments/multiple_failure_experiment.py
+++ b/ndn/experiments/multiple_failure_experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2017, The University of Memphis,
+# Copyright (C) 2015-2018, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/ndn/experiments/pingall_experiment.py b/ndn/experiments/pingall_experiment.py
index ebac539..cad27e2 100644
--- a/ndn/experiments/pingall_experiment.py
+++ b/ndn/experiments/pingall_experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2017, The University of Memphis,
+# Copyright (C) 2015-2018, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/ndn/experiments/prefix_propogation.py b/ndn/experiments/prefix_propogation.py
index 4fe7dee..a4f83b3 100644
--- a/ndn/experiments/prefix_propogation.py
+++ b/ndn/experiments/prefix_propogation.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2017, The University of Memphis,
+# Copyright (C) 2015-2018, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
