diff --git a/helper/ndn-global-routing-helper.cpp b/helper/ndn-global-routing-helper.cpp
index 282f784..ebc4617 100644
--- a/helper/ndn-global-routing-helper.cpp
+++ b/helper/ndn-global-routing-helper.cpp
@@ -80,7 +80,7 @@
   gr = CreateObject<GlobalRouter>();
   node->AggregateObject(gr);
 
-  for (auto& face : ndn->getForwarder()->getFaceTable()) {
+  for (auto& face : ndn->getFaceTable()) {
     auto transport = dynamic_cast<NetDeviceTransport*>(face.getTransport());
     if (transport == nullptr) {
       NS_LOG_DEBUG("Skipping non ndnSIM-specific transport face");
@@ -316,7 +316,7 @@
     // remember interface statuses
     std::list<nfd::FaceId> faceIds;
     std::unordered_map<nfd::FaceId, uint16_t> originalMetrics;
-    for (auto& nfdFace : l3->getForwarder()->getFaceTable()) {
+    for (auto& nfdFace : l3->getFaceTable()) {
       faceIds.push_back(nfdFace.getId());
       originalMetrics[nfdFace.getId()] = nfdFace.getMetric();
       nfdFace.setMetric(std::numeric_limits<uint16_t>::max() - 1);
@@ -324,7 +324,7 @@
     }
 
     for (auto& faceId : faceIds) {
-      auto* face = l3->getForwarder()->getFaceTable().get(faceId);
+      auto* face = l3->getFaceTable().get(faceId);
       NS_ASSERT(face != nullptr);
       auto transport = dynamic_cast<NetDeviceTransport*>(face->getTransport());
       if (transport == nullptr) {
@@ -381,7 +381,7 @@
 
     // recover original interface statuses
     for (auto& i : originalMetrics) {
-      l3->getForwarder()->getFaceTable().get(i.first)->setMetric(i.second);
+      l3->getFaceTable().get(i.first)->setMetric(i.second);
     }
   }
 }
diff --git a/helper/ndn-link-control-helper.cpp b/helper/ndn-link-control-helper.cpp
index 2b46946..b0894d5 100644
--- a/helper/ndn-link-control-helper.cpp
+++ b/helper/ndn-link-control-helper.cpp
@@ -56,7 +56,7 @@
   NS_ASSERT(ndn1 != nullptr && ndn2 != nullptr);
 
   // iterate over all faces to find the right one
-  for (const auto& face : ndn1->getForwarder()->getFaceTable()) {
+  for (const auto& face : ndn1->getFaceTable()) {
     auto transport = dynamic_cast<NetDeviceTransport*>(face.getTransport());
     if (transport == nullptr)
       continue;
diff --git a/helper/ndn-stack-helper.cpp b/helper/ndn-stack-helper.cpp
index cf60551..af9c055 100644
--- a/helper/ndn-stack-helper.cpp
+++ b/helper/ndn-stack-helper.cpp
@@ -391,7 +391,7 @@
     if (ndn == nullptr)
       continue;
 
-    for (auto& face : ndn->getForwarder()->getFaceTable()) {
+    for (auto& face : ndn->getFaceTable()) {
       auto transport = dynamic_cast<NetDeviceTransport*>(face.getTransport());
       if (transport == nullptr)
         continue;
