diff --git a/bin/Barreleye.py b/bin/Barreleye.py
index 2a8ff49..6e213a5 100755
--- a/bin/Barreleye.py
+++ b/bin/Barreleye.py
@@ -34,6 +34,7 @@
 		'/org/openbmc/control/host0' : 0,
 		'/org/openbmc/control/flash/bios' : 0,
 		'/org/openbmc/sensors/speed/fan5': 0,
+		'/org/openbmc/inventory/system/chassis/io_board' : 0,
 	},
 	'BMC_STARTING2' : {
 		'/org/openbmc/control/fans' : 0,	
@@ -164,6 +165,13 @@
 		'monitor_process' : True,
 		'process_name'    : 'chassis_control.py',
 	},
+	'board_vpd' : {
+		'system_state'    : 'BMC_STARTING2',
+		'start_process'   : True,
+		'monitor_process' : False,
+		'process_name'    : 'phosphor-read-eeprom',
+		'args'            : ['--eeprom','/sys/devices/platform/ahb/ahb:apb/1e78a000.i2c/1e78a040.i2c-bus/i2c-0/0-0050/eeprom','--fruid','64'],
+	},
 	'hwmon_barreleye' : {
 		'system_state'    : 'BMC_STARTING',
 		'start_process'   : True,
diff --git a/bin/chassis_control.py b/bin/chassis_control.py
index 4428cf7..8d19d1e 100755
--- a/bin/chassis_control.py
+++ b/bin/chassis_control.py
@@ -39,7 +39,12 @@
 				'bus_name' : 'org.openbmc.watchdog.Host',
 				'object_name' : '/org/openbmc/watchdog/host0',
 				'interface_name' : 'org.openbmc.Watchdog'
-			}
+			},
+			'host_services' : {
+				'bus_name' : 'org.openbmc.HostServices',
+				'object_name' : '/org/openbmc/HostServices',
+				'interface_name' : 'org.openbmc.HostServices'
+			},
 		}
 
 		#uuid
@@ -110,9 +115,9 @@
 		in_signature='', out_signature='')
 	def softPowerOff(self):
 		print "Soft off power"
-		## TODO: Somehow tell host to shutdown via ipmi
-		## for now hard power off
-		self.powerOff()	
+		intf = self.getInterface('host_services')
+		## host services will call power off when ready
+		intf.SoftPowerOff()
 		return None
 
 	@dbus.service.method(DBUS_NAME,
diff --git a/bin/system_manager.py b/bin/system_manager.py
index 6554e75..156f4ab 100755
--- a/bin/system_manager.py
+++ b/bin/system_manager.py
@@ -27,15 +27,16 @@
 INTF_CONTROL = 'org.openbmc.Control'
 
 
-class SystemManager(dbus.service.Object):
-	def __init__(self,bus,name):
-		dbus.service.Object.__init__(self,bus,name)
+class SystemManager(Openbmc.DbusProperties):
+	def __init__(self,bus,obj_name):
+		Openbmc.DbusProperties.__init__(self)
+		dbus.service.Object.__init__(self,bus,obj_name)
 
 		bus.add_signal_receiver(self.NewObjectHandler,
 			signal_name = "ObjectAdded", sender_keyword = 'bus_name')
 		bus.add_signal_receiver(self.SystemStateHandler,signal_name = "GotoSystemState")
 
-		self.current_state = ""
+		self.Set(DBUS_NAME,"current_state","")
 		self.system_states = {}
 		self.bus_name_lookup = {}
 		self.bin_path = os.path.dirname(os.path.realpath(sys.argv[0]))
@@ -59,14 +60,16 @@
 			print "Creating cache directory: "+PropertyCacher.CACHE_PATH
    			os.makedirs(PropertyCacher.CACHE_PATH)
 
+		self.ObjectAdded(obj_name,DBUS_NAME)
 		print "SystemManager Init Done"
 
 
 	def SystemStateHandler(self,state_name):
 		## clearing object started flags
+		current_state = self.Get(DBUS_NAME,"current_state")
 		try:
-			for obj_path in System.EXIT_STATE_DEPEND[self.current_state]:
-				System.EXIT_STATE_DEPEND[self.current_state][obj_path] = 0
+			for obj_path in System.EXIT_STATE_DEPEND[current_state]:
+				System.EXIT_STATE_DEPEND[current_state][obj_path] = 0
 		except:
 			pass
 
@@ -88,12 +91,13 @@
 		except:
 			pass
 
-		self.current_state = state_name
+		self.Set(DBUS_NAME,"current_state",state_name)
 
 	def gotoNextState(self):
 		s = 0
+		current_state = self.Get(DBUS_NAME,"current_state")
 		for i in range(len(System.SYSTEM_STATES)):
-			if (System.SYSTEM_STATES[i] == self.current_state):
+			if (System.SYSTEM_STATES[i] == current_state):
 				s = i+1
 	
 		if (s == len(System.SYSTEM_STATES)):
@@ -107,7 +111,7 @@
 	@dbus.service.method(DBUS_NAME,
 		in_signature='', out_signature='s')
 	def getSystemState(self):
-		return self.current_state
+		return self.Get(DBUS_NAME,"current_state")
 
 	def doObjectLookup(self,category,key):
 		bus_name = ""
@@ -169,22 +173,23 @@
 		return True
 
 	def NewObjectHandler(self,obj_path, interface_name, bus_name = None):
+		current_state = self.Get(DBUS_NAME,"current_state")
 		if (self.bus_name_lookup.has_key(obj_path)):
 			if (self.bus_name_lookup[obj_path] == bus_name):
 				return
 		self.bus_name_lookup[obj_path] = bus_name
 		print "New object: "+obj_path+" ("+bus_name+")"
 		try:
-			if (System.EXIT_STATE_DEPEND[self.current_state].has_key(obj_path) == True):
-				System.EXIT_STATE_DEPEND[self.current_state][obj_path] = 1
+			if (System.EXIT_STATE_DEPEND[current_state].has_key(obj_path) == True):
+				System.EXIT_STATE_DEPEND[current_state][obj_path] = 1
 			## check if all required objects are started to move to next state
 			state = 1
-			for obj_path in System.EXIT_STATE_DEPEND[self.current_state]:
-				if (System.EXIT_STATE_DEPEND[self.current_state][obj_path] == 0):
+			for obj_path in System.EXIT_STATE_DEPEND[current_state]:
+				if (System.EXIT_STATE_DEPEND[current_state][obj_path] == 0):
 					state = 0
 			## all required objects have started so go to next state
 			if (state == 1):
-				print "All required objects started for "+self.current_state
+				print "All required objects started for "+current_state
 				self.gotoNextState()
 		except:
 			pass
