diff --git a/examples/syntactic-topology-ndnabstraction.c b/examples/syntactic-topology-ndnabstraction.c
deleted file mode 100644
index 51e0252..0000000
--- a/examples/syntactic-topology-ndnabstraction.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- *  syntactic-topology.c
- *  XcodeProject
- *
- *  Created by Ilya Moiseenko on 7/18/11.
- *  Copyright 2011 University of California, Los Angeles. All rights reserved.
- *
- */
-
-#include "ns3/core-module.h"
-
-using namespace ns3;
-
-int 
-main (int argc, char *argv[])
-{
-	return 0;
-}
diff --git a/examples/wscript b/examples/wscript
index 1ebcd2d..f3bca13 100644
--- a/examples/wscript
+++ b/examples/wscript
@@ -3,4 +3,4 @@
 def build(bld):
     obj = bld.create_ns3_program('syntactic-topology-ndnabstraction',
                                  ['core-module'])
-    obj.source = 'syntactic-topology-ndnabstraction.c'
\ No newline at end of file
+    obj.source = 'syntactic-topology-ndnabstraction.cc'
\ No newline at end of file
diff --git a/helper/ndnabstraction-helper.c b/helper/ndnabstraction-helper.c
deleted file mode 100644
index e02c5eb..0000000
--- a/helper/ndnabstraction-helper.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- *  ndnabstraction-helper.c
- *  XcodeProject
- *
- *  Created by Ilya Moiseenko on 7/18/11.
- *  Copyright 2011 University of California, Los Angeles. All rights reserved.
- *
- */
-
-#include "ndnabstraction-helper.h"
-
-namespace ns3{
-
-}
-
diff --git a/model/ndnabstraction-header.c b/model/ndnabstraction-header.c
deleted file mode 100644
index 9b0eecb..0000000
--- a/model/ndnabstraction-header.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- *  ndnabstraction-header.c
- *  XcodeProject
- *
- *  Created by Ilya Moiseenko on 7/18/11.
- *  Copyright 2011 University of California, Los Angeles. All rights reserved.
- *
- */
-
-#include "ndnabstraction-header.h"
-#include "ns3/assert.h"
\ No newline at end of file
diff --git a/model/ndnabstraction-header.h b/model/ndnabstraction-header.h
index 5dde6f0..53548a9 100644
--- a/model/ndnabstraction-header.h
+++ b/model/ndnabstraction-header.h
@@ -16,9 +16,6 @@
 #include "ns3/nstime.h"
 
 namespace ns3 {
-namespace olsr {
-	const int constanta = 10;
-}
 }
 
 #endif
\ No newline at end of file
diff --git a/test/ndnabstraction-basictest.c b/test/ndnabstraction-basictest.c
deleted file mode 100644
index 66f4fcc..0000000
--- a/test/ndnabstraction-basictest.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- *  ndnabstraction-basictest.c
- *  XcodeProject
- *
- *  Created by Ilya Moiseenko on 7/18/11.
- *  Copyright 2011 University of California, Los Angeles. All rights reserved.
- *
- */
-
-#include "ndnabstraction-basictest.h"
-
diff --git a/wscript b/wscript
index 76f1f72..1022953 100644
--- a/wscript
+++ b/wscript
@@ -4,23 +4,39 @@
     module = bld.create_ns3_module('NDNabstraction', ['internet', 'config-store', 'tools', 'point-to-point', 'wifi', 'mobility', 'applications', 'csma'])
     module.includes = '.'
     module.source = [
-        'model/ndnabstraction-header.c',
-        'helper/ndnabstraction-helper.c',
+        'model/ndnabstraction-header.cc',
+        'model/ccn_charbuf.cc',
+        'model/ccn_name_util.cc',
+        'model/ccn_coding.cc',
+        'model/ccn_indexbuf.cc',
+        'model/ccn_random.cc',
+        'model/ccn_buf_decoder.cc',
+        'model/ccn_buf_encoder.cc',
+        'helper/ndnabstraction-helper.cc',
         ]
 
     module_test = bld.create_ns3_module_test_library('NDNabstraction')
     module_test.source = [
-        'test/ndnabstraction-basictest.c',
+        'test/ndnabstraction-basictest.cc',
 		]
 
     headers = bld.new_task_gen('ns3header')
     headers.module = 'NDNabstraction'
     headers.source = [
         'model/ndnabstraction-header.h',
+        'model/ccn_charbuf.h',
+        'model/ccn_name_util.h',
+        'model/ccn_coding.h',
+        'model/ccn_indexbuf.h',
+        'model/ccn_random.h',
+        'model/ccn_ccn.h',
         'helper/ndnabstraction-helper.h',
         ]
 
 
+    if bld.env['ENABLE_OPENSSL']:
+        module.uselib      = 'OPENSSL'
+
     if bld.env['ENABLE_EXAMPLES']:
         bld.add_subdirs('examples')
 
