diff --git a/objects/control_host_obj.c b/objects/control_host_obj.c
index fafcd31..5809576 100644
--- a/objects/control_host_obj.c
+++ b/objects/control_host_obj.c
@@ -6,7 +6,8 @@
 #include <sys/stat.h>
 #include <sys/mman.h>
 #include "interfaces/control_host.h"
-#include "objects/openbmc_utilities.h"
+#include "openbmc.h"
+#include "gpio.h"
 
 
 /* ---------------------------------------------------------------------------------------------------- */
@@ -14,7 +15,6 @@
 static const gchar* dbus_name        = "org.openbmc.control.Host";
 
 static GDBusObjectManagerServer *manager = NULL;
-static ControlHost *control_host = NULL;
 
 GPIO fsi_data     = (GPIO){ "FSI_DATA" };
 GPIO fsi_clk      = (GPIO){ "FSI_CLK" };
@@ -87,26 +87,34 @@
 {
 	ObjectSkeleton *object;
 	g_print ("Acquired a message bus connection: %s\n",name);
-	manager = g_dbus_object_manager_server_new (dbus_object_path);
+ 	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);
+		ControlHost* control_host = control_host_skeleton_new ();
+		object_skeleton_set_control_host (object, control_host);
+		g_object_unref (control_host);
 
-	gchar *s;
-	s = g_strdup_printf ("%s/0",dbus_object_path);
-	object = object_skeleton_new (s);
-	g_free (s);
-	control_host = control_host_skeleton_new ();
-	object_skeleton_set_control_host (object, control_host);
-	g_object_unref (control_host);
-
-	//define method callbacks here
-	g_signal_connect (control_host,
+		//define method callbacks here
+		g_signal_connect (control_host,
                   "handle-boot",
                   G_CALLBACK (on_boot),
                   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);
 	
