diff --git a/apps/ccnx-consumer.cc b/apps/ccnx-consumer.cc
index 5e39fd3..0e6ec9e 100644
--- a/apps/ccnx-consumer.cc
+++ b/apps/ccnx-consumer.cc
@@ -42,9 +42,9 @@
                     MakePointerAccessor (&CcnxConsumer::m_face),
                     MakePointerChecker<CcnxLocalFace> ())
     .AddAttribute ("InterestName","CcnxName of the Interest (use CcnxNameComponents)",
-                    PointerValue (CreateObject<CcnxNameComponents> ()),
-                    MakePointerAccessor (&CcnxConsumer::m_interestName),
-                    MakePointerChecker<CcnxNameComponents> ())
+                    CcnxNameComponentsValue (CcnxNameComponents ()),
+                    MakeCcnxNameComponentsAccessor (&CcnxConsumer::m_interestName),
+                    MakeCcnxNameComponentsChecker ())
     .AddAttribute ("LifeTime", "LifeTime fo interest packet",
                     TimeValue (Seconds (4.0)),
                     MakeTimeAccessor (&CcnxConsumer::m_interestLifeTime),
@@ -62,9 +62,9 @@
                     MakeBooleanAccessor(&CcnxConsumer::m_childSelector),
                     MakeBooleanChecker())
     .AddAttribute ("Exclude", "only simple name matching is supported (use CcnxNameComponents)",
-                   PointerValue (CreateObject<CcnxNameComponents> ()),
-                   MakePointerAccessor (&CcnxConsumer::m_exclude),
-                   MakePointerChecker<CcnxNameComponents> ())
+                   CcnxNameComponentsValue (CcnxNameComponents ()),
+                   MakeCcnxNameComponentsAccessor (&CcnxConsumer::m_exclude),
+                   MakeCcnxNameComponentsChecker ())
     .AddAttribute ("Initial Nonce", "If 0 then nonce is not used",
                     UintegerValue(1),
                     MakeUintegerAccessor(&CcnxConsumer::m_initialNonce),
@@ -138,10 +138,10 @@
     uint32_t randomNonce = UniformVariable().GetInteger(1, std::numeric_limits<uint32_t>::max ());
     CcnxInterestHeader interestHeader;
     interestHeader.SetNonce(randomNonce);
-    interestHeader.SetName(m_interestName);
+    interestHeader.SetName(Create<CcnxNameComponents> (m_interestName));
     interestHeader.SetInterestLifetime(m_interestLifeTime);
     interestHeader.SetChildSelector(m_childSelector);
-    interestHeader.SetExclude(m_exclude);
+    interestHeader.SetExclude(Create<CcnxNameComponents> (m_exclude));
     interestHeader.SetMaxSuffixComponents(m_maxSuffixComponents);
     interestHeader.SetMinSuffixComponents(m_minSuffixComponents);
         
