diff --git a/manager/1.0/IServiceManager.hal b/manager/1.0/IServiceManager.hal
new file mode 100644
index 0000000..1e76814
--- /dev/null
+++ b/manager/1.0/IServiceManager.hal
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.hidl.manager@1.0;
+
+interface IServiceManager {
+    struct Version {
+        uint16_t major;
+        uint16_t minor;
+    };
+
+    /**
+     * Retrieve an existing service.
+     *
+     * Warning: This function should only be used in specific circumstances. You
+     * are likely looking for 'IMyInterface::getService("name");'.
+     */
+    get(string name, Version version) generates (interface service);
+
+    /**
+     * Register a service.
+     *
+     * Warning: Function 'INTERFACE::registerAsService' should be used
+     * instead of this to register services.
+     *
+     * TODO: namespace out name per interface type.
+     *       register as super classes as well.
+     */
+    add(string name, interface service, Version version) generates (bool success);
+
+};
\ No newline at end of file
