diff --git a/bin/Barreleye.py b/bin/Barreleye.py
index 328da30..3c16c8c 100644
--- a/bin/Barreleye.py
+++ b/bin/Barreleye.py
@@ -34,6 +34,7 @@
 SYSTEM_CONFIG['org.openbmc.control.Bmc'] = {
 		'system_state' : 'INIT',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'control_bmc.exe',
 		'heartbeat' : 'no',
 		'instances' : [	
@@ -47,6 +48,7 @@
 SYSTEM_CONFIG['org.openbmc.managers.Frus'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'fru_manager.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'frus',
@@ -61,6 +63,7 @@
 SYSTEM_CONFIG['org.openbmc.managers.Ipmi'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'ipmi_manager.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'frus',
@@ -76,6 +79,7 @@
 SYSTEM_CONFIG['org.openbmc.managers.Sensors'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'sensor_manager.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'sensors',
@@ -90,6 +94,7 @@
 SYSTEM_CONFIG['org.openbmc.loggers.EventLogger'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'eventlogger.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'events',
@@ -104,6 +109,7 @@
 SYSTEM_CONFIG['org.openbmc.watchdog.Host'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'host_watchdog.exe',
 		'heartbeat' : 'no',
 		'rest_name' : 'watchdog',
@@ -123,6 +129,7 @@
 SYSTEM_CONFIG['org.openbmc.control.Power'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'power_control.exe',
 		'heartbeat' : 'yes',
 		'instances' : [	
@@ -141,6 +148,7 @@
 SYSTEM_CONFIG['org.openbmc.sensors.Temperature.Ambient'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'sensor_ambient.exe',
 		'heartbeat' : 'yes',
 		'instances' : [	
@@ -168,6 +176,7 @@
 SYSTEM_CONFIG['org.openbmc.buttons.Power'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'button_power.exe',
 		'heartbeat' : 'no',
 		'instances' : [	
@@ -180,6 +189,7 @@
 SYSTEM_CONFIG['org.openbmc.sensors.HostStatus'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'sensor_host_status.exe',
 		'heartbeat' : "no",
 		'instances' : [	
@@ -198,6 +208,7 @@
 SYSTEM_CONFIG['org.openbmc.leds.ChassisIdentify'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'chassis_identify.exe',
 		'heartbeat' : 'no',
 		'instances' : [	
@@ -210,6 +221,7 @@
 SYSTEM_CONFIG['org.openbmc.flash.BIOS'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'flash_bios.exe',
 		'heartbeat' : 'no',
 		'rest_name' : 'flash',
@@ -223,6 +235,7 @@
 SYSTEM_CONFIG['org.openbmc.control.Host'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'control_host.exe',
 		'heartbeat' : 'no',
 		'instances' : [	
@@ -235,6 +248,7 @@
 SYSTEM_CONFIG['org.openbmc.control.Chassis'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'chassis_control.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'chassis',
@@ -246,9 +260,25 @@
 		]
 	}
 
-SYSTEM_CONFIG['org.openbmc.sensors.Occ'] = {
+SYSTEM_CONFIG['org.openbmc.vpd'] = {
 		'system_state' : 'POWERED_ON',
 		'start_process' : True,
+		'monitor_process' : False,
+		'process_name' : 'board_vpd.exe',
+		'heartbeat' : 'no',
+		'instances' : [
+			{
+				'name' : 'MBVPD_0',
+				'user_label': 'VPD',
+			},
+
+		]
+	}
+
+SYSTEM_CONFIG['org.openbmc.sensors.Occ'] = {
+		'system_state' : 'HOST_UP',
+		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'sensor_occ.exe',
 		'heartbeat' : 'no',
 		'instances' : [
@@ -268,6 +298,7 @@
 SYSTEM_CONFIG['org.openbmc.sensors.Fan'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'fan.exe',
 		'heartbeat' : 'no',
 		'instances' : [
diff --git a/bin/PropertyManager.py b/bin/PropertyManager.py
index d3176d1..b89ed12 100644
--- a/bin/PropertyManager.py
+++ b/bin/PropertyManager.py
@@ -7,7 +7,8 @@
 import dbus
 import dbus.service
 import dbus.mainloop.glib
-from gi.repository import Gio, GLib, GObject
+#from gi.repository import Gio, GLib, GObject
+import gobject
 
 
 class PropertyManager():
diff --git a/bin/chassis_control.py b/bin/chassis_control.py
index 455030b..1956860 100644
--- a/bin/chassis_control.py
+++ b/bin/chassis_control.py
@@ -1,7 +1,8 @@
 #!/usr/bin/env python
 
 import sys
-from gi.repository import GObject
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -152,7 +153,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME, bus)
     obj = ChassisControlObject(bus, OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
     
     print "Running ChassisControlService"
     mainloop.run()
diff --git a/bin/eventlogger.py b/bin/eventlogger.py
index 3701d28..6f2d165 100644
--- a/bin/eventlogger.py
+++ b/bin/eventlogger.py
@@ -3,7 +3,8 @@
 import sys
 import syslog
 import json
-from gi.repository import GObject
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -31,7 +32,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME, bus)
     obj = EventLogger(bus, OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
     
     print "Running EventLogger"
     mainloop.run()
diff --git a/bin/ipmi_manager.py b/bin/ipmi_manager.py
index 479d1a1..24c36f4 100644
--- a/bin/ipmi_manager.py
+++ b/bin/ipmi_manager.py
@@ -2,8 +2,8 @@
 
 import sys
 import subprocess
-from gi.repository import GObject
-
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -98,7 +98,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME,bus)
     obj = IpmiManager(bus,OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
 
     print "Running IpmiManager"
     mainloop.run()
diff --git a/bin/sensor_manager.py b/bin/sensor_manager.py
index bcf3fd8..2e1e96a 100644
--- a/bin/sensor_manager.py
+++ b/bin/sensor_manager.py
@@ -1,7 +1,8 @@
 #!/usr/bin/env python
 
 import sys
-from gi.repository import GObject
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -104,7 +105,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME,bus)
     obj = SensorManager(bus,OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
 
     print "Running Sensor Manager"
     mainloop.run()
diff --git a/bin/system_manager.py b/bin/system_manager.py
index 515fa1f..1a4fe99 100644
--- a/bin/system_manager.py
+++ b/bin/system_manager.py
@@ -2,7 +2,8 @@
 
 import sys
 import subprocess
-from gi.repository import GObject
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -55,7 +56,7 @@
 		
 		if (state_name == "INIT"):
 			## Add poll for heartbeat
-	    		GObject.timeout_add(HEARTBEAT_CHECK_INTERVAL, self.heartbeat_check)
+	    		gobject.timeout_add(HEARTBEAT_CHECK_INTERVAL, self.heartbeat_check)
 		
 		if (System.ENTER_STATE_CALLBACK.has_key(state_name)):
 			cb = System.ENTER_STATE_CALLBACK[state_name]
@@ -83,7 +84,8 @@
 		#print "heartbeat check"
 		for bus_name in System.SYSTEM_CONFIG.keys():
 			if (System.SYSTEM_CONFIG[bus_name]['start_process'] == True and
-				System.SYSTEM_CONFIG[bus_name].has_key('popen')):
+				System.SYSTEM_CONFIG[bus_name].has_key('popen') and
+				System.SYSTEM_CONFIG[bus_name]['monitor_process'] == True):
 				## even if process doesn't request heartbeat check, 
 				##   make sure process is still alive
 				p = System.SYSTEM_CONFIG[bus_name]['popen']
@@ -172,7 +174,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME,bus)
     obj = SystemManager(bus,OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
 
     print "Running SystemManager"
     mainloop.run()
diff --git a/includes/openbmc.h b/includes/openbmc.h
index 58523fe..b8e8d0f 100644
--- a/includes/openbmc.h
+++ b/includes/openbmc.h
@@ -14,6 +14,15 @@
 #define VARIANT_COMPARE(x,y)   g_variant_compare(GET_VARIANT(x),GET_VARIANT(y))
 
 
+static inline void writel(uint32_t val,void* addr)
+{
+        asm volatile("" : : : "memory");
+        *(volatile uint32_t *)addr = val;
+}
+static inline devmem(uint32_t val, uint32_t reg)
+{
+       writel(val,reg);
+}
 
 
 typedef struct {
diff --git a/objects/board_vpd_obj.c b/objects/board_vpd_obj.c
index 59eaca8..11b2ab6 100644
--- a/objects/board_vpd_obj.c
+++ b/objects/board_vpd_obj.c
@@ -29,6 +29,10 @@
                              NULL,                      /* GCancellable */
                              &error);
 	g_assert_no_error (error);
+
+	//TODO:  Read actual vpd
+	g_print("Reading VPD\n");
+
 	parm = g_variant_new("(isv)",21,"manufacturer",g_variant_new_string("ibmibm"));
 	result = g_dbus_proxy_call_sync (p,
                                    "updateFruField",
@@ -38,6 +42,7 @@
                                    NULL,
                                    &error);
 	g_assert_no_error (error);
+	
 	//g_main_loop_run (loop);
 	//g_bus_unown_name (id);
  	g_main_loop_unref (loop);
diff --git a/objects/control_bmc_obj.c b/objects/control_bmc_obj.c
index 53e5c99..7e9965f 100644
--- a/objects/control_bmc_obj.c
+++ b/objects/control_bmc_obj.c
@@ -24,8 +24,36 @@
 {
 	g_print("BMC init\n");
 	// BMC init done here
-	// must be blocking
-	
+	/*
+	devmem(0x1e789080,0x00000500); //Enable LPC FWH cycles, Enable LPC to AHB bridge
+	devmem(0x1e789088,0x30000E00); //32M PNOR
+	devmem(0x1e78908C,0xFE0001FF);
+
+	//flash controller
+	devmem(0x1e630000,0x00000003);
+	devmem(0x1e630004,0x00002404);
+
+	//UART
+	devmem(0x1e6e2084,0x00fff0c0);  //Enable UART1
+	devmem(0x1e783000,0x00000000);  //Set Baud rate divisor -> 13 (Baud 115200)
+	devmem(0x1e783004,0x00000000);  //Set Baud rate divisor -> 13 (Baud 115200)
+	devmem(0x1e783008,0x000000c1);  //Disable Parity, 1 stop bit, 8 bits
+	devmem(0x1E78909C,0x00000000);  //Set routing UART1 -> COM 1
+
+
+	//GPIO
+	devmem(0x1e6e2070,0x120CE406);
+	devmem(0x1e6e2080,0xCB000000);
+	devmem(0x1e6e2088,0x01C000FF);
+	devmem(0x1e6e208c,0xC1C000FF);
+	devmem(0x1e6e2090,0x003FA009);
+
+	devmem(0x1E780000,0x13008CE7);
+	devmem(0x1E780004,0x0370E677);
+	devmem(0x1E780020,0xDF48F7FF);
+	devmem(0x1E780024,0xC738F202);
+*/
+
 	control_complete_init(control,invocation);
 	control_emit_goto_system_state(control,"STANDBY");
 	
