diff --git a/obmc/mapper/server.py b/obmc/mapper/server.py
index 9f8d717..29a65a4 100644
--- a/obmc/mapper/server.py
+++ b/obmc/mapper/server.py
@@ -195,8 +195,9 @@
 
 class ObjectMapper(dbus.service.Object):
     def __init__(
-            self, bus, path, namespaces, interface_namespaces,
-            blacklist, interface_blacklist):
+            self, bus, path, namespaces, service_namespaces,
+            interface_namespaces, blacklist, service_blacklist,
+            interface_blacklist):
         super(ObjectMapper, self).__init__(bus, path)
         self.cache = obmc.utils.pathtree.PathTree()
         self.bus = bus
@@ -206,9 +207,11 @@
         self.bus_map = {}
         self.defer_signals = {}
         self.namespaces = namespaces
+        self.service_namespaces = service_namespaces
         self.interface_namespaces = interface_namespaces
         self.blacklist = blacklist
         self.blacklist.append(obmc.mapper.MAPPER_PATH)
+        self.service_blacklist = service_blacklist
         self.interface_blacklist = interface_blacklist
 
         # add my object mananger instance
@@ -779,8 +782,10 @@
 
 def server_main(
         path_namespaces,
+        service_namespaces,
         interface_namespaces,
         blacklists,
+        service_blacklists,
         interface_blacklists):
     dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
     bus = dbus.SystemBus()
@@ -788,8 +793,10 @@
         bus,
         obmc.mapper.MAPPER_PATH,
         path_namespaces,
+        service_namespaces,
         interface_namespaces,
         blacklists,
+        service_blacklists,
         interface_blacklists)
     loop = gobject.MainLoop()
 
diff --git a/phosphor-mapper b/phosphor-mapper
index 4e28c1c..25d9867 100644
--- a/phosphor-mapper
+++ b/phosphor-mapper
@@ -26,12 +26,18 @@
         '-p', '--path_namespaces',
         required=True)
     parser.add_argument(
+        '-s', '--service_namespaces',
+        default="")
+    parser.add_argument(
         '-i', '--interface_namespaces',
         required=True)
     parser.add_argument(
         '-b', '--blacklists',
         default="")
     parser.add_argument(
+        '-x', '--service_blacklists',
+        default="")
+    parser.add_argument(
         '-n', '--interface_blacklists',
         default="")
 
@@ -40,6 +46,8 @@
     sys.exit(
         obmc.mapper.server.server_main(
             path_namespaces=args.path_namespaces.split(),
+            service_namespaces=args.service_namespaces.split(),
             interface_namespaces=args.interface_namespaces.split(),
             blacklists=args.blacklists.split(),
+            service_blacklists=args.service_blacklists.split(),
             interface_blacklists=args.interface_blacklists.split()))
