diff --git a/nlsr.c b/nlsr.c
index 3f98b94..f865944 100644
--- a/nlsr.c
+++ b/nlsr.c
@@ -1087,39 +1087,8 @@
 	destroy_adl();
 	destroy_npl();
 	destroy_lsdb();	
-
-
-	/*
-	int i, npt_element,rt_element;
-	struct npt_entry *ne;
-	struct hashtb_enumerator ee;
-	struct hashtb_enumerator *e = &ee;
-	hashtb_start(nlsr->npt, e);
-	npt_element=hashtb_n(nlsr->npt);
-	for(i=0;i<npt_element;i++)
-	{
-		ne=e->data;
-		hashtb_destroy(&ne->name_list);
-		hashtb_destroy(&ne->face_list);	
-		hashtb_next(e);		
-	}
-
-	hashtb_end(e);
-	hashtb_destroy(&nlsr->npt);
-	*/
-	/*
-	struct routing_table_entry *rte;
-	hashtb_start(nlsr->routing_table, e);
-	rt_element=hashtb_n(nlsr->routing_table);
-	for(i=0;i<rt_element;i++)
-	{
-		rte=e->data;
-		hashtb_destroy(&rte->face_list);	
-		hashtb_next(e);		
-	}	
-	hashtb_end(e);
-	hashtb_destroy(&nlsr->routing_table);
-	*/
+	destroy_npt();
+	destroy_routing_table();
 
 	if ( nlsr->ccns != NULL )
 		ccns_close(&nlsr->ccns, NULL, NULL);
@@ -1199,20 +1168,23 @@
 	nlsr->npt = hashtb_create(sizeof(struct npt_entry), NULL);
 	nlsr->routing_table = hashtb_create(sizeof(struct routing_table_entry), NULL);
 
-	nlsr->in_interest.p = &incoming_interest;
-	nlsr->in_content.p = &incoming_content;
-
 	nlsr->lsdb=(struct linkStateDatabase *)malloc(sizeof(struct linkStateDatabase));
+	nlsr->lsdb->adj_lsdb = hashtb_create(sizeof(struct alsa), NULL);
+	nlsr->lsdb->name_lsdb = hashtb_create(sizeof(struct nlsa), NULL);
+	nlsr->lsdb->cor_lsdb = hashtb_create(sizeof(struct clsa), NULL);
 
+	/*
 	char *time_stamp=(char *) calloc (20,sizeof(char));
 	get_current_timestamp_micro(time_stamp);
 	nlsr->lsdb->lsdb_version=(char *)malloc(strlen(time_stamp)+1);
 	memset(nlsr->lsdb->lsdb_version,0,strlen(time_stamp));
 	free(time_stamp);
+	*/
 
-	nlsr->lsdb->adj_lsdb = hashtb_create(sizeof(struct alsa), NULL);
-	nlsr->lsdb->name_lsdb = hashtb_create(sizeof(struct nlsa), NULL);
-	nlsr->lsdb->cor_lsdb = hashtb_create(sizeof(struct clsa), NULL);
+	nlsr->lsdb->lsdb_version=get_current_timestamp_micro_v2();
+
+	nlsr->in_interest.p = &incoming_interest;
+	nlsr->in_content.p = &incoming_content;
 
 	nlsr->is_synch_init=1;
 	nlsr->nlsa_id=0;
@@ -1225,7 +1197,6 @@
 	nlsr->detailed_logging=0;
 	nlsr->debugging=0;
 
-	//nlsr->lsdb_synch_interval = LSDB_SYNCH_INTERVAL;
 	nlsr->interest_retry = INTEREST_RETRY;
 	nlsr->interest_resend_time = INTEREST_RESEND_TIME;
 	nlsr->lsa_refresh_time=LSA_REFRESH_TIME;
diff --git a/nlsr_lsdb.c b/nlsr_lsdb.c
index feffb18..e46f60d 100644
--- a/nlsr_lsdb.c
+++ b/nlsr_lsdb.c
@@ -35,11 +35,12 @@
 set_new_lsdb_version(void)
 {
 	
-	char *time_stamp=get_current_timestamp_micro_v2();
+	//char *time_stamp=get_current_timestamp_micro_v2();
 	free(nlsr->lsdb->lsdb_version);
-	nlsr->lsdb->lsdb_version=(char *)calloc(strlen(time_stamp)+1,sizeof(char));
-	memcpy(nlsr->lsdb->lsdb_version,time_stamp,strlen(time_stamp)+1);
-	free(time_stamp);
+	nlsr->lsdb->lsdb_version=get_current_timestamp_micro_v2();
+	//nlsr->lsdb->lsdb_version=(char *)calloc(strlen(time_stamp)+1,sizeof(char));
+	//memcpy(nlsr->lsdb->lsdb_version,time_stamp,strlen(time_stamp)+1);
+	//free(time_stamp);
 }
 
 /**
diff --git a/nlsr_npt.c b/nlsr_npt.c
index 81786af..948e0fb 100644
--- a/nlsr_npt.c
+++ b/nlsr_npt.c
@@ -241,7 +241,7 @@
 
 		hashtb_start(ne->name_list, enle);
 		nl_element=hashtb_n(ne->name_list);
-
+		
 		for (i=0;i<nl_element;i++)
 		{
 			nle=enle->data;
@@ -258,9 +258,8 @@
 			
 			hashtb_next(enle);
 		}
-
-
 		hashtb_end(enle);
+		
 
 		if ( nlsr->debugging )
 		{
@@ -565,8 +564,10 @@
 			} 
 
 		}
-		hashtb_destroy(&ne->name_list);
-		hashtb_destroy(&ne->face_list);
+		//hashtb_destroy(&ne->name_list);
+		//hashtb_destroy(&ne->face_list);
+		destroy_name_list(ne->name_list);
+		destroy_face_list(ne->face_list);
 		hashtb_delete(e);		
 	}
 	else if ( res == HT_NEW_ENTRY )
@@ -735,6 +736,7 @@
 		res1=hashtb_seek(ef, &face_id, sizeof(face_id), 0);
 		if ( res1 == HT_OLD_ENTRY )
 		{
+			
 			hashtb_delete(ef);
 		}
 		else if ( res1 == HT_NEW_ENTRY )
@@ -1095,15 +1097,31 @@
 }
 
 void
-destroy_name_list(void)
+destroy_name_list(struct hashtb *name_list)
 {
-	
+	int j,nl_element;
+	struct name_list_entry *nle;		
+	struct hashtb_enumerator eenle;
+    	struct hashtb_enumerator *enle = &eenle;
+
+	hashtb_start(name_list, enle);
+	nl_element=hashtb_n(name_list);	
+
+	for (j=0;j<nl_element;j++)
+	{
+		nle=enle->data;
+		free(nle->name);
+		hashtb_next(enle);
+	}
+	hashtb_end(enle);
+
+	hashtb_destroy(&name_list);	
 }
 
 void
-destroy_face_list(void)
+destroy_face_list(struct hashtb *face_list)
 {
-
+	hashtb_destroy(&face_list);
 }
 
 void 
@@ -1123,41 +1141,12 @@
 	for(i=0;i<npt_element;i++)
 	{
 		ne=e->data;
-	
-		int j, nl_element,face_list_element;
-		struct name_list_entry *nle;		
-		struct hashtb_enumerator eenle;
-    		struct hashtb_enumerator *enle = &eenle;
-
-		hashtb_start(ne->name_list, enle);
-		nl_element=hashtb_n(ne->name_list);	
-
-		for (j=0;j<nl_element;j++)
-		{
-			nle=enle->data;
-			hashtb_next(enle);
-		}
-		hashtb_end(enle);
-
-		struct face_list_entry *fle;
-		struct hashtb_enumerator eef;
-    		struct hashtb_enumerator *ef = &eef;
-    	
-    		hashtb_start(ne->face_list, ef);
-		face_list_element=hashtb_n(ne->face_list);
-		
-		for(j=0;j<face_list_element;j++)
-		{
-			fle=ef->data;
-			hashtb_next(ef);	
-		}
-		
-		hashtb_end(ef);
-		
-			
+		destroy_name_list(ne->name_list);
+		destroy_face_list(ne->face_list);	
 		hashtb_next(e);		
 	}
-
 	hashtb_end(e);
+
+	hashtb_destroy(&nlsr->npt);
 }
 
diff --git a/nlsr_npt.h b/nlsr_npt.h
index 8d54828..ecb6bda 100644
--- a/nlsr_npt.h
+++ b/nlsr_npt.h
@@ -26,5 +26,8 @@
 void sort_faces_by_distance(int *faces,int *route_costs,int start,int element);
 void update_ccnd_fib_for_orig_router(char *orig_router);
 void get_all_faces_for_orig_router_from_npt(char *orig_router, int *faces, int *route_costs, int num_faces);
+void destroy_name_list(struct hashtb *name_list);
+void destroy_face_list(struct hashtb *face_list);
+void destroy_npt(void);
 
 #endif
diff --git a/nlsr_route.c b/nlsr_route.c
index 6b45ed2..b6619ef 100644
--- a/nlsr_route.c
+++ b/nlsr_route.c
@@ -192,8 +192,10 @@
 		}
 		
 		free(adj_matrix);
-		hashtb_destroy(&nlsr->map);
-		hashtb_destroy(&nlsr->rev_map);
+		destroy_map();
+		destroy_rev_map();
+		//hashtb_destroy(&nlsr->map);
+		//hashtb_destroy(&nlsr->rev_map);
 		
 	}
 	nlsr->is_route_calculation_scheduled=0;
@@ -1059,7 +1061,7 @@
 		}
 		hashtb_end(ef);
 	}
-	else if ( res == HT_OLD_ENTRY )
+	else if ( res == HT_NEW_ENTRY )
 	{
 		hashtb_delete(e);
 	}
@@ -1249,6 +1251,7 @@
 			memcpy(router,rte->dest_router,strlen(rte->dest_router)+1);
 			nlsr->event = ccn_schedule_event(nlsr->sched, 1, &delete_empty_rte, (void *)router , 0);
 			*/
+			destroy_routing_table_entry_comp(rte);
 			hashtb_delete(e);
 			i++;
 		}
@@ -1399,3 +1402,88 @@
 	
 	return distance;
 }
+
+void
+destroy_routing_table_entry_comp(struct routing_table_entry *rte)
+{
+
+	free(rte->dest_router);
+	hashtb_destroy(&rte->face_list);	
+		
+}
+
+void
+destroy_routing_table_entry(struct routing_table_entry *rte)
+{
+
+	destroy_routing_table_entry_comp(rte);
+	free(rte);
+}
+
+void
+destroy_routing_table(void)
+{
+	int i, rt_element;
+	struct hashtb_enumerator ee;
+	struct hashtb_enumerator *e = &ee;
+
+	struct routing_table_entry *rte;
+	hashtb_start(nlsr->routing_table, e);
+	rt_element=hashtb_n(nlsr->routing_table);
+	for(i=0;i<rt_element;i++)
+	{
+		rte=e->data;
+		free(rte->dest_router);
+		hashtb_destroy(&rte->face_list);	
+		hashtb_next(e);		
+	}	
+	hashtb_end(e);
+	hashtb_destroy(&nlsr->routing_table);
+
+}
+
+void
+destroy_map(void)
+{
+
+	int i, map_element;
+	struct map_entry *me;
+
+	struct hashtb_enumerator ee;
+    	struct hashtb_enumerator *e = &ee;
+    	
+    	hashtb_start(nlsr->map, e);
+	map_element=hashtb_n(nlsr->map);
+
+	for(i=0;i<map_element;i++)
+	{
+		me=e->data;
+		free(me->router);
+		hashtb_next(e);		
+	}
+
+	hashtb_end(e);
+
+}
+
+void
+destroy_rev_map(void)
+{
+	int i, map_element;
+	struct map_entry *me;
+
+	struct hashtb_enumerator ee;
+    	struct hashtb_enumerator *e = &ee;
+    	
+    	hashtb_start(nlsr->rev_map, e);
+	map_element=hashtb_n(nlsr->rev_map);
+
+	for(i=0;i<map_element;i++)
+	{
+		me=e->data;
+		free(me->router);
+		hashtb_next(e);		
+	}
+
+	hashtb_end(e);
+}
diff --git a/nlsr_route.h b/nlsr_route.h
index b6dff03..1a3d70d 100644
--- a/nlsr_route.h
+++ b/nlsr_route.h
@@ -17,7 +17,6 @@
 struct routing_table_entry
 {
 	char *dest_router;
-	//int next_hop_face;
 	struct hashtb *face_list;
 };
 
@@ -68,4 +67,10 @@
 void sort_hyperbolic_route(double *dist_dest,double *dist_nbr, long int *faces,long int start,long int element);
 void update_routing_table_with_new_hyperbolic_route(long int dest_router_rev_map_index, long int face, double nbr_to_dest_dist);
 
+void destroy_routing_table_entry_comp(struct routing_table_entry *rte);
+void destroy_routing_table_entry(struct routing_table_entry *rte);
+void destroy_routing_table(void);
+void destroy_map(void);
+void destroy_rev_map(void);
+
 #endif
