diff --git a/src/plugins/select/bluegene/Makefile.am b/src/plugins/select/bluegene/Makefile.am
index 4af2ef50cbd17bf5d976681957f394266b947b31..1f3bf2a25dacc19efd14dd1bd20147d269051ed3 100644
--- a/src/plugins/select/bluegene/Makefile.am
+++ b/src/plugins/select/bluegene/Makefile.am
@@ -1,6 +1,7 @@
 # $Id$
 # Makefile for select/bluegene plugin
 
+CPPFLAGS =  -DBLUEGENE_CONFIG_FILE=\"$(sysconfdir)/bluegene.conf\"
 AUTOMAKE_OPTIONS = foreign
 
 PLUGIN_FLAGS = -module -avoid-version --export-dynamic  -lm
diff --git a/src/plugins/select/bluegene/bluegene.c b/src/plugins/select/bluegene/bluegene.c
index 81d9a5c8da640a18ed48feccfbaa2d0dcc4b094e..b67d15647a938b762bcbe3c8cb0925c6769c4d04 100644
--- a/src/plugins/select/bluegene/bluegene.c
+++ b/src/plugins/select/bluegene/bluegene.c
@@ -35,7 +35,8 @@
 #define RANGE_MAX 8192
 #define BUF_SIZE 4096
 
-static char* bgl_conf = "/home/phung4/root/etc/bluegene.conf";
+/* "etc/bluegene.conf"; */
+char* bgl_conf = BLUEGENE_CONFIG_FILE;
 
 /** some internally used functions */
 
@@ -960,6 +961,11 @@ void _print_bitmap(bitstr_t* bitmap)
 
 /** 
  * global - bgl: 
+ * 
+ * hmm, so it seems here we have to parse through the entire list of
+ * base partitions to update our system.  so since we have to go
+ * through the list anyways, we should have instant access (O(1)) to
+ * the nodelist that we have to update.
  */
 void update_bgl_node_bitmap(bitstr_t* bitmap)
 {
@@ -968,33 +974,39 @@ void update_bgl_node_bitmap(bitstr_t* bitmap)
 	rm_BP_t *my_bp;
 	rm_switch_t *my_switch;
 	rm_wire_t *my_wire;
-	rm_size3D_t bp_size,size_in_bp,m_size;
+	// rm_size3D_t bp_size,size_in_bp,m_size;
+	// rm_size3D_t bp_size,size_in_bp,m_size;
 
 	if (!bgl){
 		error("error, BGL is not initialized");
 	}
 
-	  printf("---------rm_get_BGL------------\n");
-	  rm_get_data(bgl,RM_BPsize,&bp_size);
-	  rm_get_data(bgl,RM_Msize,&m_size);
-
-	  printf("BP Size = (%d x %d x %d)\n",bp_size.X,bp_size.Y,bp_size.Z);
-
-	  rm_get_data(bgl,RM_BPNum,&bp_num);
-	  printf("- - - - - BPS (%d) - - - - - -\n",bp_num);
-
-	  for(i=0;i<bp_num;i++){
-		  if(i==0)
-			  rm_get_data(bgl,RM_FirstBP,&my_bp);
-		  else
-			  rm_get_data(bgl,RM_NextBP,&my_bp);
-		    rm_BP_state_t bp_state;
-		    rm_get_data(my_bp,RM_BPState,&bp_state);
-		    /* from here we either update the node or bitmap
-		       entry */
-		    if ()
-
-	  }
+	printf("---------rm_get_BGL------------\n");
+	// rm_get_data(bgl,RM_BPsize,&bp_size);
+	// rm_get_data(bgl,RM_Msize,&m_size);
+
+	printf("BP Size = (%d x %d x %d)\n",bp_size.X,bp_size.Y,bp_size.Z);
+
+	rm_get_data(bgl,RM_BPNum,&bp_num);
+	printf("- - - - - BPS (%d) - - - - - -\n",bp_num);
+
+	for(i=0;i<bp_num;i++){
+		if(i==0)
+			rm_get_data(bgl,RM_FirstBP,&my_bp);
+		else
+			rm_get_data(bgl,RM_NextBP,&my_bp);
+		rm_BP_state_t bp_state;
+
+		// is this blocking call?
+		rm_get_data(my_bp,RM_BPState,&bp_state);
+		rm_get_data(my_bp,RM_BPState,&bp_state);
+		/* from here we either update the node or bitmap
+		   entry */
+		// convert_partition_state(BPPartState);
+		// BPID,convert_bp_state(BPState),BPLoc.X,BPLoc.Y,BPLoc.Z,BPPartID
+		    
+ 
+	}
 	  
 #endif
 }
@@ -1003,17 +1015,36 @@ void update_bgl_node_bitmap(bitstr_t* bitmap)
 #ifdef _RM_API_H__
 /** */
 char *convert_bp_state(rm_BP_state_t state){
-  switch(state){ 
-  case RM_BP_UP:
-    return "RM_BP_UP";
-    break;
-  case RM_BP_DOWN:
-    return "RM_BP_DOWN";
-    break;
-  case RM_BP_NAV:
-    return "RM_BP_NAV";
-  defalt:
-    return "BP_STATE_UNIDENTIFIED!";
-  }
+	switch(state){ 
+	case RM_BP_UP:
+		return "RM_BP_UP";
+		break;
+	case RM_BP_DOWN:
+		return "RM_BP_DOWN";
+		break;
+	case RM_BP_NAV:
+		return "RM_BP_NAV";
+	defalt:
+		return "BP_STATE_UNIDENTIFIED!";
+	}
+};
+
+
+/** */
+void set_bp_node_state(rm_BP_state_t state, node_record node){
+	switch(state){ 
+	case RM_BP_UP:
+		debug("RM_BP_UP");
+		break;
+	case RM_BP_DOWN:
+		debug("RM_BP_DOWN");
+		break;
+	case RM_BP_NAV:
+		debug("BGL state update returned UNKNOWN state");
+		break;
+	defalt:
+		debug("BGL state update returned UNKNOWN state");
+		break;
+	}
 };
 #endif