diff --git a/ndn-cpp/security/identity/basic-identity-storage.cpp b/ndn-cpp/security/identity/basic-identity-storage.cpp
index 3fcd3dd..8bf1c1a 100644
--- a/ndn-cpp/security/identity/basic-identity-storage.cpp
+++ b/ndn-cpp/security/identity/basic-identity-storage.cpp
@@ -9,9 +9,7 @@
 #include <ndn-cpp/ndn-cpp-config.h>
 #ifdef NDN_CPP_HAVE_SQLITE3
 
-#if 1
-#include <stdexcept>
-#endif
+#include <stdio.h>
 #include <stdlib.h>
 #include <sstream>
 #include <fstream>
@@ -23,18 +21,11 @@
 #include <ndn-cpp/security/certificate/identity-certificate.hpp>
 #include "../../c/util/time.h"
 #include <ndn-cpp/sha256-with-rsa-signature.hpp>
-#if 0
-#include "ndn.cxx/regex/regex.h"
-#include <boost/filesystem.hpp>
-#endif
 
 INIT_LOGGER("BasicIdentityStorage");
 
 using namespace std;
 using namespace ndn::ptr_lib;
-#if 0
-namespace fs = boost::filesystem;
-#endif
 
 namespace ndn
 {
@@ -97,22 +88,29 @@
 
 BasicIdentityStorage::BasicIdentityStorage()
 {
-#if 0
-  fs::path identityDir = fs::path(getenv("HOME")) / ".ndn-identity";
-  fs::create_directories(identityDir);
+  // Note: We don't use <filesystem> support because it is not "header-only" and require linking to libraries.
+  // TOOD: Handle non-unix file system paths which don't use '/'.
+  const char* home = getenv("HOME");
+  if (!home || *home == '\0')
+    // Don't expect this to happen;
+    home = ".";
+  string homeDir(home);
+  if (homeDir[homeDir.size() - 1] == '/')
+    // Strip the ending '/'.
+    homeDir.erase(homeDir.size() - 1);
   
-  int res = sqlite3_open((identityDir / "identity.db").c_str(), &database_);
+  string identityDir = homeDir + '/' + ".ndn-identity";
+  ::system(("mkdir " + identityDir).c_str());
+  
+  int res = sqlite3_open((identityDir + '/' + "identity.db").c_str(), &database_);
 
   if (res != SQLITE_OK)
-    {
-      throw SecurityException("identity DB cannot be opened/created");
-    }
-#endif
+    throw SecurityException("identity DB cannot be opened/created");
   
   //Check if Key table exists;
   sqlite3_stmt *statement;
   sqlite3_prepare_v2(database_, "SELECT name FROM sqlite_master WHERE type='table' And name='Identity'", -1, &statement, 0);
-  int res = sqlite3_step(statement);
+  res = sqlite3_step(statement);
 
   bool idTableExists = false;
   if (res == SQLITE_ROW)
