diff --git a/ndn/apps/nfdc.py b/ndn/apps/nfdc.py
index 41d479f..9f1b312 100644
--- a/ndn/apps/nfdc.py
+++ b/ndn/apps/nfdc.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2018, The University of Memphis,
+# Copyright (C) 2015-2019, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
@@ -34,12 +34,12 @@
     PROTOCOL_ETHER = "ether"
 
     @staticmethod
-    def registerRoute(node, namePrefix, remoteNode, protocol=PROTOCOL_UDP, origin=255, cost=0,
-                      inheritFlag=True, captureFlag=False, expirationInMillis=None):
+    def registerRoute(node, namePrefix, remoteNodeAddress, protocol=PROTOCOL_UDP, origin=255,
+                      cost=0, inheritFlag=True, captureFlag=False, expirationInMillis=None):
         cmd = ("nfdc route add {} {}://{} origin {} cost {} {}{}").format(
             namePrefix,
             protocol,
-            remoteNode,
+            remoteNodeAddress,
             origin,
             cost,
             "no-inherit " if not inheritFlag else "",
@@ -51,23 +51,23 @@
         time.sleep(0.5)
 
     @staticmethod
-    def unregisterRoute(node, namePrefix, remoteNode, origin=255):
-        cmd = "nfdc route remove {} {} {}".format(namePrefix, remoteNode, origin)
+    def unregisterRoute(node, namePrefix, remoteNodeAddress, origin=255):
+        cmd = "nfdc route remove {} {} {}".format(namePrefix, remoteNodeAddress, origin)
         time.sleep(0.5)
 
     @staticmethod
-    def createFace(node, remoteNode, protocol="udp", isPermanent=False):
+    def createFace(node, remoteNodeAddress, protocol="udp", isPermanent=False):
         cmd = ("nfdc face create {}://{} {}".format(
             protocol,
-            remoteNode,
+            remoteNodeAddress,
             "permanent" if isPermanent else "persistent"
         ))
         debug(node.cmd(cmd))
         time.sleep(0.5)
 
     @staticmethod
-    def destroyFace(node, remoteNode, protocol="udp"):
-        debug(node.cmd("nfdc face destroy {}://{}".format(protocol, remoteNode)))
+    def destroyFace(node, remoteNodeAddress, protocol="udp"):
+        debug(node.cmd("nfdc face destroy {}://{}".format(protocol, remoteNodeAddress)))
         time.sleep(0.5)
 
     @staticmethod
diff --git a/ndn/experiments/psync/__init__.py b/ndn/experiments/psync/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ndn/experiments/psync/__init__.py
diff --git a/ndn/experiments/psync/psync-full.py b/ndn/experiments/psync/psync-full.py
new file mode 100644
index 0000000..206993e
--- /dev/null
+++ b/ndn/experiments/psync/psync-full.py
@@ -0,0 +1,75 @@
+# -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+#
+# Copyright (C) 2015-2019, 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/>.
+
+from ndn.experiments.experiment import Experiment
+from ndn.apps.nfdc import Nfdc
+
+import time
+import sys
+
+class PSyncFull(Experiment):
+
+    def __init__(self, args):
+        Experiment.__init__(self, args)
+        self.syncPrefix = "/sync"
+        self.numUserPrefixesPerNode = 2
+        self.maxUpdatesPerUserPrefixPerNode = 3
+
+    def registerRouteToAllNeighbors(self, host):
+        for node in self.net.hosts:
+            for neighbor in node.connectionsTo(host):
+                ip = node.IP(neighbor[0])
+                Nfdc.createFace(host, ip)
+                Nfdc.registerRoute(host, self.syncPrefix, ip)
+
+    def start(self):
+        for host in self.net.hosts:
+            Nfdc.setStrategy(host, self.syncPrefix, "multicast")
+            self.registerRouteToAllNeighbors(host)
+
+        print("Starting psync-full-sync on all the nodes")
+        for host in self.net.hosts:
+            host.cmd("export NDN_LOG=examples.FullSyncApp=INFO")
+            host.cmd("psync-full-sync {} {} {} {} &> psync.logs &"
+                     .format(self.syncPrefix, host.name, self.numUserPrefixesPerNode,
+                             self.maxUpdatesPerUserPrefixPerNode))
+
+        print("Sleeping 5 minutes for convergence")
+        # Estimated time for 4 node default topology
+        time.sleep(300)
+
+        totalUpdates = int(host.cmd("grep -r Update {}/*/psync.logs | wc -l"
+                                    .format(self.options.workDir)))
+
+        expectedUpdates = (self.maxUpdatesPerUserPrefixPerNode *
+                          len(self.net.hosts) * (len(self.net.hosts) - 1) *
+                          self.numUserPrefixesPerNode)
+
+        if totalUpdates == expectedUpdates:
+            print("PSync full sync has successfully converged.")
+        else:
+            print("PSync full sync convergence was not successful. Exiting...")
+            self.net.stop()
+            sys.exit(1)
+
+Experiment.register("psync-full", PSyncFull)
diff --git a/ndn/experiments/psync/psync-partial.py b/ndn/experiments/psync/psync-partial.py
new file mode 100644
index 0000000..9b37281
--- /dev/null
+++ b/ndn/experiments/psync/psync-partial.py
@@ -0,0 +1,59 @@
+# -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+#
+# Copyright (C) 2015-2019, 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/>.
+
+from ndn.experiments.experiment import Experiment
+from ndn.apps.nfdc import Nfdc
+
+import time
+import sys
+
+class PSyncPartial(Experiment):
+
+    def __init__(self, args):
+        Experiment.__init__(self, args)
+
+    def start(self):
+        host1 = self.net.hosts[0]
+
+        host1.cmd("export NDN_LOG=examples.PartialSyncProducerApp=INFO")
+        host1.cmd("psync-producer /sync /{} 10 1 &> producer.log &".format(host1.name))
+        time.sleep(1)
+
+        host1.cmd("export NDN_LOG=examples.PartialSyncConsumerApp=INFO:$NDN_LOG")
+        host1.cmd("psync-consumer /sync 5 &> consumer.log &")
+
+        print("Sleeping 90 seconds for convergence")
+        time.sleep(90)
+
+        consumerSubs = int(host1.cmd("cat consumer.log | grep -c Subscribing"))
+        consumerUpdates = int(host1.cmd("cat consumer.log | grep -c Update"))
+        producerPublish = int(host1.cmd("cat producer.log | grep -c Publish"))
+
+        if consumerSubs == 5 and consumerUpdates == 5 and producerPublish == 10:
+            print("PSync partial sync has successfully converged.")
+        else:
+            print("PSync partial sync convergence was not successful. Exiting...")
+            self.net.stop()
+            sys.exit(1)
+
+Experiment.register("psync-partial", PSyncPartial)
