diff --git a/model/ndn-common.hpp b/model/ndn-common.hpp
index 7397de3..a678f5d 100644
--- a/model/ndn-common.hpp
+++ b/model/ndn-common.hpp
@@ -70,7 +70,7 @@
 using ::ndn::KeyChain;
 
 using ::nfd::Face;
-using ::ndn::util::FaceUri;
+using ::ndn::FaceUri;
 
 #ifndef DOXYGEN
 // For python bindings
diff --git a/model/ndn-l3-protocol.cpp b/model/ndn-l3-protocol.cpp
index 74f18ca..83081b5 100644
--- a/model/ndn-l3-protocol.cpp
+++ b/model/ndn-l3-protocol.cpp
@@ -184,6 +184,8 @@
   std::shared_ptr<nfd::ForwarderStatusManager> m_forwarderStatusManager;
   std::shared_ptr<nfd::rib::RibManager> m_ribManager;
 
+  std::shared_ptr<nfd::face::FaceSystem> m_faceSystem;
+
   nfd::ConfigSection m_config;
 
   Ptr<ContentStore> m_csFromNdnSim;
@@ -210,7 +212,6 @@
 
   nfd::FaceTable& faceTable = m_impl->m_forwarder->getFaceTable();
   faceTable.addReserved(nfd::face::makeNullFace(), nfd::face::FACEID_NULL);
-  faceTable.addReserved(nfd::face::makeNullFace(FaceUri("contentstore://")), nfd::face::FACEID_CONTENT_STORE);
 
   if (!this->getConfig().get<bool>("ndnSIM.disable_rib_manager", false)) {
     Simulator::ScheduleWithContext(m_node->GetId(), Seconds(0), &L3Protocol::initializeRibManager, this);
@@ -259,6 +260,8 @@
   auto& forwarder = m_impl->m_forwarder;
   using namespace nfd;
 
+  m_impl->m_faceSystem = make_shared<nfd::face::FaceSystem>(forwarder->getFaceTable(), nullptr);
+
   std::tie(m_impl->m_internalFace, m_impl->m_internalClientFace) = face::makeInternalFace(StackHelper::getKeyChain());
   forwarder->getFaceTable().addReserved(m_impl->m_internalFace, face::FACEID_INTERNAL_FACE);
   m_impl->m_dispatcher.reset(new ::ndn::mgmt::Dispatcher(*m_impl->m_internalClientFace, StackHelper::getKeyChain()));
@@ -271,8 +274,9 @@
                                             *m_impl->m_authenticator));
 
   // Cannot be disabled for now
-  // if (!this->getConfig().get<bool>("ndnSIM.disable_face_manager", false)) {
-  m_impl->m_faceManager.reset(new FaceManager(forwarder->getFaceTable(),
+  // if (!this->getConfig().get<bool>("ndnSIM.disable_face_manager", false))
+
+  m_impl->m_faceManager.reset(new FaceManager(*m_impl->m_faceSystem,
                                               *m_impl->m_dispatcher,
                                               *m_impl->m_authenticator));
   // }
diff --git a/model/ndn-net-device-transport.cpp b/model/ndn-net-device-transport.cpp
index 85684af..2d946c8 100644
--- a/model/ndn-net-device-transport.cpp
+++ b/model/ndn-net-device-transport.cpp
@@ -65,14 +65,6 @@
 }
 
 void
-NetDeviceTransport::beforeChangePersistency(::ndn::nfd::FacePersistency newPersistency)
-{
-  NS_LOG_FUNCTION(this << "Changing persistency for netDevice with URI"
-                  << this->getLocalUri() << "currently does nothing");
-  // do nothing for now
-}
-
-void
 NetDeviceTransport::doClose()
 {
   NS_LOG_FUNCTION(this << "Closing transport for netDevice with URI"
diff --git a/model/ndn-net-device-transport.hpp b/model/ndn-net-device-transport.hpp
index b502d4f..09a08ed 100644
--- a/model/ndn-net-device-transport.hpp
+++ b/model/ndn-net-device-transport.hpp
@@ -56,9 +56,6 @@
 
 private:
   virtual void
-  beforeChangePersistency(::ndn::nfd::FacePersistency newPersistency) override;
-
-  virtual void
   doClose() override;
 
   virtual void
