diff --git a/nlsr.c b/nlsr.c
index 072e3c7..caf57ec 100644
--- a/nlsr.c
+++ b/nlsr.c
@@ -160,8 +160,9 @@
 	memcpy(nbr->neighbor->name,rtr_name,strlen(rtr_name)+1);
 	nbr->neighbor->length=strlen(rtr_name)+1;
 	nbr->face=face_id;
-	nbr->status=0;
-	nbr->lsdb_version=0;	
+	nbr->status=0;	
+
+	
 
 	add_adjacent_to_adl(nbr);
 	print_adjacent_from_adl();
@@ -306,7 +307,10 @@
 	hnbr->neighbor->length=nbr->neighbor->length;
 	hnbr->face=nbr->face;
 	hnbr->status=nbr->status;
-	hnbr->lsdb_version=nbr->lsdb_version;
+	hnbr->last_lsdb_version=0;
+
+	struct hashtb_param param_luq = {0};
+	hnbr->lsa_update_queue=hashtb_create(200, &param_luq);
 	
     	hashtb_end(e);
 
@@ -331,7 +335,7 @@
 	for(i=0;i<adl_element;i++)
 	{
 		nbr=e->data;
-		printf("Neighbor: %s Length: %d Face: %d Status: %d Lsdb Version: %d\n",nbr->neighbor->name,nbr->neighbor->length,nbr->face, nbr->status, nbr->lsdb_version);	
+		printf("Neighbor: %s Length: %d Face: %d Status: %d LSDB Version: %d \n",nbr->neighbor->name,nbr->neighbor->length,nbr->face, nbr->status, nbr->last_lsdb_version);	
 		hashtb_next(e);		
 	}
 
@@ -341,6 +345,40 @@
 }
 
 
+void 
+nlsr_destroy( void )
+{
+
+	/* Destroying every hash table attached to each neighbor in ADL before destorying ADL */	
+
+	int i, element;
+	struct ndn_neighbor *nbr;
+
+	struct hashtb_enumerator ee;
+    	struct hashtb_enumerator *e = &ee;
+    	
+    	hashtb_start(nlsr->adl, e);
+	element=hashtb_n(nlsr->adl);
+
+	for(i=0;i<element;i++)
+	{
+		nbr=e->data;
+		hashtb_destroy(&nbr->lsa_update_queue);	
+		hashtb_next(e);		
+	}
+	hashtb_end(e);
+
+	
+
+	hashtb_destroy(&nlsr->adl);
+	hashtb_destroy(&nlsr->npl);
+	ccn_schedule_destroy(&nlsr->sched);
+	ccn_destroy(&nlsr->ccn);
+	free(nlsr);
+
+}
+
+
 int 
 main(int argc, char *argv[])
 {
@@ -410,11 +448,7 @@
 
 	}
 	
-	hashtb_destroy(&nlsr->adl);
-	hashtb_destroy(&nlsr->npl);
-	ccn_schedule_destroy(&nlsr->sched);
-	ccn_destroy(&nlsr->ccn);
-	free(nlsr);
+	nlsr_destroy();
 
 	return 0;
 }
diff --git a/nlsr.h b/nlsr.h
index 8576165..d9cc410 100644
--- a/nlsr.h
+++ b/nlsr.h
@@ -15,7 +15,8 @@
 	struct name_prefix *neighbor;
 	int face;
 	int status;
-	int lsdb_version;
+	int last_lsdb_version;
+	struct hashtb *lsa_update_queue;
 };
 
 struct nlsr
@@ -52,4 +53,7 @@
 void add_adjacent_to_adl(struct ndn_neighbor *nbr);
 void print_adjacent_from_adl(void);
 
+
+void nlsr_destroy( void );
+
 #endif
