diff --git a/src/core/agent.c b/src/core/agent.c
index 345304165b19f58656ca7fdd50662e84f1667ad1..06c711b44222f5174769d93540e52d67f84444aa 100644
--- a/src/core/agent.c
+++ b/src/core/agent.c
@@ -2858,7 +2858,7 @@ static void parse_radio(struct ubus_request *req, int type,
 	}
 
 	if (tb[2])
-		re->anpi = (int) blobmsg_get_u32(tb[2]);
+		re->anpi = (int) blobmsg_get_u32(tb[2]); // no get int?
 
 	if (tb[3])
 		re->rx_streams = blobmsg_get_u8(tb[3]);
@@ -2887,7 +2887,9 @@ static void parse_radio(struct ubus_request *req, int type,
 			return;
 		}
 		// Iterate through all supp_channels (opclasses) in radio
+		// fprintf(stderr, "|%s:%d| DEBUG!\n", __func__, __LINE__); // DEBUG
 		blobmsg_for_each_attr(cur, tb[5], rem) {
+			// fprintf(stderr, "|%s:%d| DEBUG!\n", __func__, __LINE__); // DEBUG
 			struct blob_attr *data[4];
 			static const struct blobmsg_policy supp_attrs[4] = {
 				[0] = { .name = "opclass", .type = BLOBMSG_TYPE_INT32 },
@@ -2910,9 +2912,10 @@ static void parse_radio(struct ubus_request *req, int type,
 
 			if (data[2]) {
 				struct blob_attr *attr;
+
 				j = 0; // reset iterator through channels for current opclass
 				re->supp_opclass[i].num_supported_channels = blobmsg_check_array(data[2], BLOBMSG_TYPE_INT32);
-				re->scanlist->opclass_scanlist[i].num_channels_scanned = blobmsg_check_array(data[2], BLOBMSG_TYPE_INT32);
+				re->scanlist->opclass_scanlist[i].num_channels_scanned = blobmsg_check_array(data[2], BLOBMSG_TYPE_INT32); //lejla
 				//fprintf(stdout,"\t debug num_of_ch: %d\n", re->scanlist->opclass_scanlist[i].num_channels_scanned);
 				re->scanlist->opclass_scanlist[i].channel_scanlist = calloc(re->scanlist->opclass_scanlist[i].num_channels_scanned,
 						sizeof(struct wifi_scanres_channel_element));
@@ -2920,6 +2923,7 @@ static void parse_radio(struct ubus_request *req, int type,
 					dbg("|%s:%d| out of memory!\n", __func__, __LINE__);
 					return;
 				}
+				//fprintf(stdout, "\t debug %s %d\n", __func__, __LINE__);
 				re->scanlist->opclass_scanlist[i].opclass = blobmsg_get_u32(data[0]);
 				// Iterate through all channels of the opclass
 				blobmsg_for_each_attr(attr, data[2], remm) {
@@ -2928,6 +2932,7 @@ static void parse_radio(struct ubus_request *req, int type,
 					re->scanlist->opclass_scanlist[i].channel_scanlist[j].channel = blobmsg_get_u32(attr);
 					j++;
 				}
+				//fprintf(stdout, "\t debug %s %d\n", __func__, __LINE__);
 			}
 			re->supp_opclass[i].supp_chanlist = calloc(re->supp_opclass[i].num_supported_channels, sizeof(struct supp_channel));
 			if (!re->supp_opclass[i].supp_chanlist) {
@@ -3164,10 +3169,10 @@ static void _enumerate_wifi_objects(struct ubus_request *req, int type,
 		ubus_call_object(a, r_wobj, "status", parse_radio, &a->radios[i]);
 
 		// ubus call wifi.radio.wl0 scan
-		// ubus_call_object(a,r_wobj, "scan", NULL, &a->radios[i]);
-		// fprintf(stderr, "Scaning neighbors.....");
-		// sleep(5); // TODO : week 8
-		// fprintf(stderr, "DONE\n");
+		//ubus_call_object(a, r_wobj, "scan", NULL, &a->radios[i]);
+		//fprintf(stderr, "Scaning neighbors.....");
+		//sleep(5); // TODO : week 8
+		//fprintf(stderr, "DONE\n");
 
 		// ubus call wifi.radio.wl0 scanresults
 		ubus_call_object(a, r_wobj, "scanresults", parse_scanresults, &a->radios[i]);
diff --git a/src/core/agent_map.c b/src/core/agent_map.c
index 325d2315b111444d3519302b13ff70d23f8a5db4..18deca796fc6e313b5f7e8867a84536e314544a6 100644
--- a/src/core/agent_map.c
+++ b/src/core/agent_map.c
@@ -729,7 +729,7 @@ struct netif_fh *wifi_get_netif_by_bssid(struct agent *a, uint8_t *bssid)
 	return NULL;
 }
 
-int wifi_get_radio_index_by_mac(struct agent *a,
+static struct wifi_radio_element *wifi_get_radio_index_by_mac(struct agent *a,
 		uint8_t *hwaddr)
 {
 	struct wifi_radio_element *radio;
@@ -744,7 +744,7 @@ int wifi_get_radio_index_by_mac(struct agent *a,
 		return i;
 	}
 
-	return -1;
+	return NULL;
 }
 
 int wifi_teardown_iface(const char *ifname)
@@ -3007,7 +3007,7 @@ int handle_channel_scan_request(void *agent, struct cmdu_cstruct *cmdu)
 	trace("%s: --->\n", __func__);
 	struct agent *a = (struct agent *) agent;
 	uint16_t tlv_index = 0;
-	uint32_t i, j, k, m;
+	uint32_t i, j, k;
 
 	int radio_index;
 	int opclass_index;
@@ -3035,10 +3035,8 @@ int handle_channel_scan_request(void *agent, struct cmdu_cstruct *cmdu)
 	cmdu_data->message_id = cmdu->message_id;
 	strcpy(cmdu_data->intf_name, cmdu->intf_name);
 	memcpy(cmdu_data->origin, cmdu->origin, 6);
-	cmdu_data->num_tlvs = 1; // timestamp tlv
-	for (m = 0; m < query->nbr_radios; m++) { // for each radio
-		cmdu_data->num_tlvs += query->radio_data[m].op_class_data->nbr_ch; // ch scan res tlvs
-	}
+	cmdu_data->num_tlvs = 1 + query->radio_data->op_class_data->nbr_ch;
+
 	// Allocate the TLVs
 	cmdu_data->tlvs = (uint8_t **)calloc(cmdu_data->num_tlvs, sizeof(uint8_t *));
 	if (!cmdu_data->tlvs) {
@@ -3059,40 +3057,31 @@ int handle_channel_scan_request(void *agent, struct cmdu_cstruct *cmdu)
 
 	/* Channel scan result */
 	struct wifi_radio_element *radio = a->radios;
-	/* Multi radio */
-	for (m = 0; m < query->nbr_radios; m++) {
-		//fprintf(stdout, "\tNumber of radios = %d", query->nbr_radios);
-		//fprintf(stdout, "\tradio_id in %d(m) iteration: " MACFMT "\n", m, MAC2STR(query->radio_data[m].radio_id));
-		radio_index = wifi_get_radio_index_by_mac(a, query->radio_data[m].radio_id);
-		//fprintf(stdout, "\n\t\tRADIO INDEX: %d  for " MACFMT "\n\n", radio_index, MAC2STR(query->radio_data[m].radio_id));
-		// Go through the channel list from the query
-		for (k = 0; k < query->radio_data[m].op_class_data->nbr_ch; k++) {
-			uint8_t query_channel = query->radio_data[m].op_class_data->ch[k];
-			//fprintf(stdout,"query channel %d\n", query_channel);
-
-			for (i = 0; i < radio[radio_index].scanlist->num_opclass_scanned; i++) {
-				//fprintf(stdout, "In the device list we are looking at radio " MACFMT " in %d(m) iteration\n", MAC2STR(radio[radio_index].macaddr), m);
-				for (j = 0; j < radio[radio_index].scanlist->opclass_scanlist[i].num_channels_scanned; j++) {
-					//fprintf(stdout,"current channel %d\n", radio[radio_index].scanlist->opclass_scanlist[i].channel_scanlist[j].channel);
-					if (radio[radio_index].scanlist->opclass_scanlist[i].channel_scanlist[j].channel == query_channel) {
-						//fprintf(stdout,"GO!\n");
-						opclass_index = i;
-						channel_index = j;
-						struct tlv_ch_scan_res *p1 = (struct tlv_ch_scan_res *)calloc(1, sizeof(struct tlv_ch_scan_res));
-
-						if (p1) {
-							p1->tlv_type = MAP_TLV_CHANNEL_SCAN_RES;
-							scan_results(a, p1, radio_index, opclass_index, channel_index);
-							cmdu_data->tlvs[tlv_index++] = (uint8_t *)p1;
-							trace("|%s:%d| Added %s for channel %d, tlv_index %d\n", __func__, __LINE__, map_stringify_tlv_type(*cmdu_data->tlvs[tlv_index-1]), query_channel, tlv_index-1);
-							goto found;
-						}
+	/* Assuming one radio */
+	radio_index = wifi_get_radio_index_by_mac(a, query->radio_data->radio_id);
+	// Go through the channel list from the query
+	for (int k = 0; k < query->radio_data->op_class_data->nbr_ch; k++) {
+		uint8_t query_channel = query->radio_data->op_class_data->ch[k];
+
+		for (int i = 0; i < radio->scanlist->num_opclass_scanned; i++) {
+			for (int j = 0; j < radio->scanlist->opclass_scanlist[i].num_channels_scanned; j++) {
+				if (radio->scanlist->opclass_scanlist[i].channel_scanlist[j].channel == query_channel) {
+					opclass_index = i;
+					channel_index = j;
+					struct tlv_ch_scan_res *p1 = (struct tlv_ch_scan_res *)calloc(1, sizeof(struct tlv_ch_scan_res));
+
+					if (p1) {
+						p1->tlv_type = MAP_TLV_CHANNEL_SCAN_RES;
+						scan_results(a, p1, radio_index, opclass_index, channel_index);
+						cmdu_data->tlvs[tlv_index++] = (uint8_t *)p1;
+						trace("|%s:%d| Added %s for channel %d\n", __func__, __LINE__, map_stringify_tlv_type(*cmdu_data->tlvs[tlv_index-1]), query_channel);
+						goto found;
 					}
 				}
 			}
-found:
-			continue;
 		}
+found:
+		continue;
 	}
 	// Send cmdu
 	ret = agent_send_cmdu(a, cmdu_data);