major changes
diff --git a/objects/power_control_obj.c b/objects/power_control_obj.c
index a290653..26006b4 100644
--- a/objects/power_control_obj.c
+++ b/objects/power_control_obj.c
@@ -7,7 +7,8 @@
 #include <sys/stat.h>

 #include <sys/mman.h>

 #include "interfaces/power_control.h"

-#include "objects/openbmc_utilities.h"

+#include "openbmc.h"

+#include "gpio.h"

 

 /* ---------------------------------------------------------------------------------------------------- */

 static const gchar* dbus_object_path = "/org/openbmc/control/Power";

@@ -17,7 +18,6 @@
 GPIO pgood        = (GPIO){ "PGOOD" };

 

 static GDBusObjectManagerServer *manager = NULL;

-static ControlPower *control_power = NULL;

 

 static gboolean

 on_set_power_state (ControlPower          *pwr,

@@ -69,32 +69,40 @@
 {

 	ObjectSkeleton *object;

 	g_print ("Acquired a message bus connection: %s\n",name);

+ 	cmdline *cmd = user_data;

+	if (cmd->argc < 2)

+	{

+		g_print("No objects created.  Put object name(s) on command line\n");

+		return;

+	}	

+  	manager = g_dbus_object_manager_server_new (dbus_object_path);

+  	int i=0;

+  	for (i=1;i<cmd->argc;i++)

+  	{

+		gchar *s;

+  		s = g_strdup_printf ("%s/%s",dbus_object_path,cmd->argv[i]);

+  		object = object_skeleton_new (s);

+  		g_free (s);

 

-	manager = g_dbus_object_manager_server_new (dbus_object_path);

-	gchar *s;

-  	s = g_strdup_printf ("%s/0",dbus_object_path);

-  	object = object_skeleton_new (s);

-  	g_free (s);

+		ControlPower* control_power = control_power_skeleton_new ();

+		object_skeleton_set_control_power (object, control_power);

+		g_object_unref (control_power);

 

-	control_power = control_power_skeleton_new ();

-	object_skeleton_set_control_power (object, control_power);

-	g_object_unref (control_power);

+		//define method callbacks here

+		g_signal_connect (control_power,

+        	            "handle-set-power-state",

+                	    G_CALLBACK (on_set_power_state),

+                	    NULL); /* user_data */

 

-	//define method callbacks here

-	g_signal_connect (control_power,

-                    "handle-set-power-state",

-                    G_CALLBACK (on_set_power_state),

-                    NULL); /* user_data */

+		g_signal_connect (control_power,

+                	    "handle-get-power-state",

+                	    G_CALLBACK (on_get_power_state),

+                	    NULL); /* user_data */

 

-	g_signal_connect (control_power,

-                    "handle-get-power-state",

-                    G_CALLBACK (on_get_power_state),

-                    NULL); /* user_data */

-

-	/* Export the object (@manager takes its own reference to @object) */

-	g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));

-	g_object_unref (object);

-

+		/* Export the object (@manager takes its own reference to @object) */

+		g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));

+		g_object_unref (object);

+	}

 	/* Export all objects */

 	g_dbus_object_manager_server_set_connection (manager, connection);

 

@@ -120,9 +128,10 @@
   g_print ("Lost the name %s\n", name);

 }

 

-static gboolean

-poll_pgood()

+static gboolean poll_pgood(gpointer user_data)

 {

+	ControlPower *control_power = object_get_control_power((Object*)user_data);

+

 	if (pgood.fd >= 0)

 	{

 		uint8_t gpio = gpio_read(&pgood);