diff --git a/utils/topology/annotated-topology-reader.cpp b/utils/topology/annotated-topology-reader.cpp
index c64d823..5e1b307 100644
--- a/utils/topology/annotated-topology-reader.cpp
+++ b/utils/topology/annotated-topology-reader.cpp
@@ -38,13 +38,13 @@
 #include "ns3/pointer.h"
 #include "ns3/uinteger.h"
 #include "ns3/ipv4-address.h"
-#include "ns3/ndn-l3-protocol.hpp"
-#include "ns3/ndn-face.hpp"
 #include "ns3/random-variable.h"
 #include "ns3/error-model.h"
-
 #include "ns3/constant-position-mobility-model.h"
 
+#include "model/ndn-l3-protocol.hpp"
+#include "model/ndn-net-device-face.hpp"
+
 #include <boost/foreach.hpp>
 #include <boost/lexical_cast.hpp>
 #include <boost/tokenizer.hpp>
@@ -288,10 +288,10 @@
 
       Ptr<ndn::L3Protocol> ndn = link.GetFromNode()->GetObject<ndn::L3Protocol>();
       if (ndn != 0) {
-        Ptr<ndn::Face> face = ndn->GetFaceByNetDevice(link.GetFromNetDevice());
+        shared_ptr<ndn::Face> face = ndn->getFaceByNetDevice(link.GetFromNetDevice());
         NS_ASSERT(face != 0);
 
-        face->SetMetric(metric);
+        face->setMetric(metric);
       }
     }
 
@@ -306,10 +306,10 @@
 
       Ptr<ndn::L3Protocol> ndn = link.GetToNode()->GetObject<ndn::L3Protocol>();
       if (ndn != 0) {
-        Ptr<ndn::Face> face = ndn->GetFaceByNetDevice(link.GetToNetDevice());
+        shared_ptr<ndn::Face> face = ndn->getFaceByNetDevice(link.GetToNetDevice());
         NS_ASSERT(face != 0);
 
-        face->SetMetric(metric);
+        face->setMetric(metric);
       }
     }
   }
diff --git a/utils/topology/rocketfuel-map-reader.hpp b/utils/topology/rocketfuel-map-reader.hpp
index 59879d9..3303274 100644
--- a/utils/topology/rocketfuel-map-reader.hpp
+++ b/utils/topology/rocketfuel-map-reader.hpp
@@ -23,12 +23,13 @@
 #ifndef ROCKETFUEL_MAP_READER_H
 #define ROCKETFUEL_MAP_READER_H
 
-#include "ns3/annotated-topology-reader.hpp"
+#include "annotated-topology-reader.hpp"
+
 #include "ns3/net-device-container.h"
 #include "ns3/random-variable.h"
-#include <set>
 #include "ns3/data-rate.h"
 
+#include <set>
 #include <boost/graph/adjacency_list.hpp>
 
 using namespace std;
diff --git a/utils/topology/rocketfuel-weights-reader.hpp b/utils/topology/rocketfuel-weights-reader.hpp
index 85f6ab7..2d8c7d0 100644
--- a/utils/topology/rocketfuel-weights-reader.hpp
+++ b/utils/topology/rocketfuel-weights-reader.hpp
@@ -22,7 +22,7 @@
 #ifndef ROCKETFUEL_TOPOLOGY_WEIGHTS_READER_H
 #define ROCKETFUEL_TOPOLOGY_WEIGHTS_READER_H
 
-#include "annotated-topology-reader.hpp"
+#include "ns3/ndnSIM/utils/topology/annotated-topology-reader.hpp"
 #include "ns3/net-device-container.h"
 
 namespace ns3 {
diff --git a/wscript b/wscript
index 0f078ca..0c97fc7 100644
--- a/wscript
+++ b/wscript
@@ -84,8 +84,7 @@
     module_dirs = ['NFD', 'apps', 'helper', 'model', 'utils']
     
     module.source = bld.path.ant_glob(['%s/**/*.cpp' % dir for dir in module_dirs],
-                                      excl=['model/ip-faces/*',
-                                            'utils/topology/*'])
+                                      excl=['model/ip-faces/*'])
 
     module.full_headers = [p.path_from(bld.path) for p in bld.path.ant_glob(
         ['%s/**/*.hpp' % dir for dir in module_dirs])]
