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
new file mode 100644
index 0000000..b0523b3
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python
+
+# Contributors Listed Below - COPYRIGHT 2015
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+import sys
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+import gobject
+
+SERVICE_PREFIX = 'org.openbmc.examples'
+IFACE_PREFIX = 'org.openbmc.examples'
+BASE_OBJ_PATH = '/org/openbmc/examples/'
+
+class SampleObjectOne(dbus.service.Object):
+	def __init__(self, bus, name):
+		super(SampleObjectOne, self).__init__(bus, name)
+
+	@dbus.service.method(IFACE_PREFIX + '.Echo', 's', 's')
+	def Echo(self, val):
+		self.MethodInvoked("Echo method was invoked", self._object_path)
+		return self._object_path + " says " + val
+	
+	@dbus.service.signal(IFACE_PREFIX + '.Echo', 'ss')
+	def MethodInvoked(self, message, path):
+		pass
+
+class SampleObjectTwo(SampleObjectOne):
+	def __init__(self, bus, name):
+		super(SampleObjectTwo, self).__init__(bus, name)
+		self.map = {}
+
+	@dbus.service.method(IFACE_PREFIX + '.Dict', 'ss', '')
+	def SetAValueInTheDict(self, key, value):
+		self.map[key] = value
+
+	@dbus.service.method(IFACE_PREFIX + '.Dict', 's', 's')
+	def GetAValueFromTheDict(self, key):
+		return self.map.get(key, "set a value first")
+
+	@dbus.service.method(IFACE_PREFIX + '.Dict', '', 's')
+	def GetAllValuesFromTheDict(self):
+		return " ".join( [ x+ ':' + self.map[x] for x in self.map.keys() ] )
+
+
+if __name__ == '__main__':
+	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
+	bus = dbus.SystemBus()
+
+	services = []
+	services.append(dbus.service.BusName(SERVICE_PREFIX + '.PythonService0', bus))
+	services.append(dbus.service.BusName(SERVICE_PREFIX + '.PythonService1', bus))
+
+	objs = []
+	objs.append(SampleObjectOne(bus, BASE_OBJ_PATH + 'path0/PythonObj'))
+	objs.append(SampleObjectTwo(bus, BASE_OBJ_PATH + 'path1/PythonObj'))
+
+	mainloop = gobject.MainLoop()
+
+	print "obmc-phosphor-example-pydbus starting..."
+	mainloop.run()
+
diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.service
similarity index 68%
rename from common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service
rename to common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.service
index 0cf4e15..d39395f 100644
--- a/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/obmc-phosphor-example-pydbus.service
@@ -2,7 +2,7 @@
 Description=Phosphor OpenBMC QEMU application example
 
 [Service]
-ExecStart=/usr/sbin/obmc-phosphor-qemu
+ExecStart=/usr/sbin/obmc-phosphor-example-pydbus
 
 [Install]
 WantedBy=multi-user.target
diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/org.openbmc.examples.services.Service0.conf b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService0.conf
similarity index 61%
rename from common/recipes-phosphor/obmc-phosphor-qemu/files/org.openbmc.examples.services.Service0.conf
rename to common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService0.conf
index 1c6c505..fad0b81 100644
--- a/common/recipes-phosphor/obmc-phosphor-qemu/files/org.openbmc.examples.services.Service0.conf
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService0.conf
@@ -2,7 +2,7 @@
  "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 <busconfig>
   <policy user="root">
-    <allow own="org.openbmc.examples.services.Service0"/>
-    <allow send_destination="org.openbmc.examples.services.Service0"/>
+    <allow own="org.openbmc.examples.PythonService0"/>
+    <allow send_destination="org.openbmc.examples.PythonService0"/>
   </policy>
 </busconfig>
diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/org.openbmc.examples.services.Service1.conf b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService1.conf
similarity index 61%
rename from common/recipes-phosphor/obmc-phosphor-qemu/files/org.openbmc.examples.services.Service1.conf
rename to common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService1.conf
index cd488d5..0f7114e 100644
--- a/common/recipes-phosphor/obmc-phosphor-qemu/files/org.openbmc.examples.services.Service1.conf
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/files/org.openbmc.examples.PythonService1.conf
@@ -2,7 +2,7 @@
  "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 <busconfig>
   <policy user="root">
-    <allow own="org.openbmc.examples.services.Service1"/>
-    <allow send_destination="org.openbmc.examples.services.Service1"/>
+    <allow own="org.openbmc.examples.PythonService1"/>
+    <allow send_destination="org.openbmc.examples.PythonService1"/>
   </policy>
 </busconfig>
diff --git a/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb b/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb
new file mode 100644
index 0000000..7fee0b1
--- /dev/null
+++ b/common/recipes-phosphor/obmc-phosphor-example-pydbus/obmc-phosphor-example-pydbus.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Phosphor OpenBMC BSP Example Application"
+DESCRIPTION = "Phosphor OpenBMC QEMU BSP example implementation."
+PR = "r1"
+
+DBUS_SERVICES = " \
+        org.openbmc.examples.PythonService0 \
+        org.openbmc.examples.PythonService1 \
+        "
+
+inherit obmc-phosphor-pydbus-service
diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.py b/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.py
deleted file mode 100644
index 3ef8e85..0000000
--- a/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-
-# Contributors Listed Below - COPYRIGHT 2015
-# [+] International Business Machines Corp.
-#
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# permissions and limitations under the License.
-
-import sys
-import dbus
-import dbus.service
-import dbus.mainloop.glib
-import gobject
-
-SERVICE_PREFIX = 'org.openbmc.examples.services'
-IFACE_PREFIX = 'org.openbmc.examples.interfaces'
-BASE_OBJ_PATH = '/org/openbmc/examples/'
-
-class SampleObjectOne(dbus.service.Object):
-	def __init__(self, bus, name):
-		super(SampleObjectOne, self).__init__(bus, name)
-
-	@dbus.service.method(IFACE_PREFIX + '.Interface0', 's', 's')
-	def echo(self, val):
-		return str(type(self).__name__) + ": " + val
-
-class SampleObjectTwo(SampleObjectOne):
-	def __init__(self, bus, name):
-		super(SampleObjectTwo, self).__init__(bus, name)
-		self.map = {}
-
-	@dbus.service.method(IFACE_PREFIX + '.Interface1', 'ss', '')
-	def set_a_value_in_the_dict(self, key, value):
-		self.map[key] = value
-
-	@dbus.service.method(IFACE_PREFIX + '.Interface1', 's', 's')
-	def get_a_value_from_the_dict(self, key):
-		return self.map.get(key, "set a value first")
-
-	@dbus.service.method(IFACE_PREFIX + '.Interface1', '', 's')
-	def get_all_values_from_the_dict(self):
-		return " ".join( [ x+ ':' + self.map[x] for x in self.map.keys() ] )
-
-if __name__ == '__main__':
-	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
-
-	bus = dbus.SystemBus()
-
-	services = []
-	services.append(dbus.service.BusName(SERVICE_PREFIX + '.Service0', bus))
-	services.append(dbus.service.BusName(SERVICE_PREFIX + '.Service1', bus))
-
-	objs = []
-	objs.append(SampleObjectOne(bus, BASE_OBJ_PATH + 'path0/Obj'))
-	objs.append(SampleObjectTwo(bus, BASE_OBJ_PATH + 'path1/Obj'))
-
-	mainloop = gobject.MainLoop()
-
-	print "obmc-phosphor-qemu starting..."
-	mainloop.run()
-
diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb b/common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb
deleted file mode 100644
index 0ea5355..0000000
--- a/common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Phosphor OpenBMC BSP Example Application"
-DESCRIPTION = "Phosphor OpenBMC QEMU BSP example implementation."
-PR = "r1"
-
-inherit obmc-phosphor-py-daemon
-
-DBUS_SERVICES = " \
-        org.openbmc.examples.services.Service0 \
-        org.openbmc.examples.services.Service1 \
-        "
-
-inherit obmc-phosphor-dbus-service
diff --git a/conf/machine/include/sample.inc b/conf/machine/include/sample.inc
index 7db2883..3b67e8d 100644
--- a/conf/machine/include/sample.inc
+++ b/conf/machine/include/sample.inc
@@ -6,14 +6,14 @@
         "
 
 VIRTUAL-RUNTIME_obmc-phosphor-fan-ctl = " \
-       obmc-phosphor-qemu \
+       obmc-phosphor-example-pydbus \
        "
 VIRTUAL-RUNTIME_obmc-phosphor-sensor-ctl = " \
-       obmc-phosphor-qemu \
+       obmc-phosphor-example-pydbus \
        "
 VIRTUAL-RUNTIME_obmc-phosphor-chassis-ctl = " \
-       obmc-phosphor-qemu \
+       obmc-phosphor-example-pydbus \
        "
 VIRTUAL-RUNTIME_obmc-phosphor-flash-ctl = " \
-       obmc-phosphor-qemu \
+       obmc-phosphor-example-pydbus \
        "
