diff --git a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
index b0523b3..2b59b58 100644
--- a/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
@@ -42,10 +42,15 @@
 class SampleObjectTwo(SampleObjectOne):
 	def __init__(self, bus, name):
 		super(SampleObjectTwo, self).__init__(bus, name)
-		self.map = {}
+		self.map = { 'empty' : 'add values to me' }
+
+	@dbus.service.signal(IFACE_PREFIX + '.Dict', 'sss')
+	def DictMethodCalled(self, message, key, value):
+		pass
 
 	@dbus.service.method(IFACE_PREFIX + '.Dict', 'ss', '')
 	def SetAValueInTheDict(self, key, value):
+		self.DictMethodCalled("Dict method was invoked", key, value)
 		self.map[key] = value
 
 	@dbus.service.method(IFACE_PREFIX + '.Dict', 's', 's')
@@ -56,6 +61,24 @@
 	def GetAllValuesFromTheDict(self):
 		return " ".join( [ x+ ':' + self.map[x] for x in self.map.keys() ] )
 
+	@dbus.service.method(dbus.PROPERTIES_IFACE, 'ss', 'v')
+	def Get(self, interface, prop):
+		return self.GetAll(interface)[prop]
+
+	@dbus.service.method(dbus.PROPERTIES_IFACE, 's', 'a{sv}')
+	def GetAll(self, interface):
+		if interface == IFACE_PREFIX + '.Dict':
+			return { 'Dict': self.map }
+
+	@dbus.service.method(dbus.PROPERTIES_IFACE, 'ssv')
+	def Set(self, interface, prop, value):
+		if prop == 'Dict':
+			self.map = value
+			self.PropertiesChanged(interface, { prop : value }, [])
+
+	@dbus.service.signal(dbus.PROPERTIES_IFACE, 'sa{sv}as')
+	def PropertiesChanged(self, interface, properties, invalidated_properties):
+		pass
 
 if __name__ == '__main__':
 	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
