diff --git a/src/profile-data.cpp b/src/profile-data.cpp
new file mode 100644
index 0000000..e111e54
--- /dev/null
+++ b/src/profile-data.cpp
@@ -0,0 +1,44 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2013, Regents of the University of California
+ *                     Yingdi Yu
+ *
+ * BSD license, See the LICENSE file for more information
+ *
+ * Author: Yingdi Yu <yingdi@cs.ucla.edu>
+ */
+
+#include "profile-data.h"
+
+using namespace std;
+using namespace ndn;
+
+ProfileData::ProfileData (const Name& identityName,
+			  const string& profileType,
+			  const Blob& profileValue)
+  : Data()
+  , m_identityName(identityName)
+  , m_profileType(profileType)
+{
+  Name tmpName = identityName;
+  setName(tmpName.append(profileType));
+  setContent(Content(profileValue.buf(), profileValue.size()));
+}
+
+
+ProfileData::ProfileData (const ProfileData& profile)
+  : Data()
+  , m_identityName(profile.m_identityName)
+  , m_profileType(profile.m_profileType)
+{
+  setName(profile.getName());
+  setContent(profile.getContent());
+}
+
+Ptr<ProfileData> 
+ProfileData::fromData (const Data& data)
+{
+  //TODO:
+  return NULL;
+}
+
diff --git a/src/profile-data.h b/src/profile-data.h
new file mode 100644
index 0000000..a1e71cf
--- /dev/null
+++ b/src/profile-data.h
@@ -0,0 +1,43 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2013, Regents of the University of California
+ *                     Yingdi Yu
+ *
+ * BSD license, See the LICENSE file for more information
+ *
+ * Author: Yingdi Yu <yingdi@cs.ucla.edu>
+ */
+
+#ifndef PROFILE_DATA_H
+#define PROFILE_DATA_H
+
+#include <ndn.cxx/data.h>
+
+class ProfileData : public ndn::Data
+{
+public:
+  ProfileData (const ndn::Name& identityName,
+               const std::string& profileType,
+               const ndn::Blob& profileValue);
+
+  ProfileData (const ProfileData& profile);
+
+  ~ProfileData () {}
+
+  static ndn::Ptr<ProfileData> 
+  fromData (const ndn::Data& data);
+
+  inline const ndn::Name&
+  getIdentityName() const
+  { return m_identityName; }
+
+  inline const std::string&
+  getProfileType() const
+  { return m_profileType; }
+
+private:
+  ndn::Name m_identityName;
+  std::string m_profileType;
+};
+
+#endif
diff --git a/wscript b/wscript
index 878688b..15f0fcf 100644
--- a/wscript
+++ b/wscript
@@ -18,6 +18,9 @@
 
     conf.load('boost')
 
+    conf.check_cfg(package='libndn.cxx', args=['--cflags', '--libs'], uselib_store='NDNCXX', mandatory=True)
+    conf.check_cfg(package='sqlite3', args=['--cflags', '--libs'], uselib_store='SQLITE3', mandatory=True)
+
     conf.check_boost(lib='system random thread')
 
     conf.write_config_header('config.h')
@@ -30,7 +33,7 @@
         defines = "WAF",
         source = bld.path.ant_glob(['src/*.cpp', 'src/*.ui']),
         includes = ".",
-        use = "QTCORE QTGUI",
+        use = "QTCORE QTGUI SQLITE3 NDNCXX",
         )   
 
 
