diff --git a/src/route/fib.cpp b/src/route/fib.cpp
index 7e19100..752b15a 100644
--- a/src/route/fib.cpp
+++ b/src/route/fib.cpp
@@ -96,7 +96,7 @@
   std::map<ndn::Name, FibEntry>::iterator entryIt = m_table.find(name);
 
   // New FIB entry that has nextHops
-  if (entryIt == m_table.end() && hopsToAdd.getSize() != 0) {
+  if (entryIt == m_table.end() && hopsToAdd.size() != 0) {
     _LOG_DEBUG("New FIB Entry");
 
     FibEntry entry(name);
@@ -113,7 +113,7 @@
     _LOG_DEBUG("Existing FIB Entry");
 
     // Remove empty FIB entry
-    if (hopsToAdd.getSize() == 0) {
+    if (hopsToAdd.size() == 0) {
       remove(name);
       return;
     }
diff --git a/src/route/name-prefix-table.cpp b/src/route/name-prefix-table.cpp
index 4f9d91d..52271ef 100644
--- a/src/route/name-prefix-table.cpp
+++ b/src/route/name-prefix-table.cpp
@@ -106,7 +106,7 @@
     npte->generateNhlfromRteList();
     m_table.push_back(npte);
     // If this entry has next hops, we need to inform the FIB
-    if (npte->getNexthopList().getSize() > 0) {
+    if (npte->getNexthopList().size() > 0) {
       _LOG_TRACE("Updating FIB with next hops for " << npte);
       m_nlsr.getFib().update(name, npte->getNexthopList());
     }
@@ -128,7 +128,7 @@
     (*nameItr)->addRoutingTableEntry(rtpePtr);
     (*nameItr)->generateNhlfromRteList();
 
-    if ((*nameItr)->getNexthopList().getSize() > 0) {
+    if ((*nameItr)->getNexthopList().size() > 0) {
       _LOG_TRACE("Updating FIB with next hops for " << (*nameItr));
       m_nlsr.getFib().update(name, (*nameItr)->getNexthopList());
     }
diff --git a/src/route/nexthop-list.cpp b/src/route/nexthop-list.cpp
index 903ca48..65f6782 100644
--- a/src/route/nexthop-list.cpp
+++ b/src/route/nexthop-list.cpp
@@ -44,7 +44,7 @@
 bool
 operator==(const NexthopList& lhs, const NexthopList& rhs)
 {
-  if (lhs.getSize() != rhs.getSize()) {
+  if (lhs.size() != rhs.size()) {
     return false;
   }
 
diff --git a/src/route/nexthop-list.hpp b/src/route/nexthop-list.hpp
index 1c35079..9ba0772 100644
--- a/src/route/nexthop-list.hpp
+++ b/src/route/nexthop-list.hpp
@@ -76,13 +76,7 @@
   removeNextHop(const NextHop& nh);
 
   size_t
-  getSize()
-  {
-    return m_nexthopList.size();
-  }
-
-  size_t
-  getSize() const
+  size() const
   {
     return m_nexthopList.size();
   }
