diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java b/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java
new file mode 100644
index 0000000..6ae7c8b
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2014-2016 Open Networking Laboratory
+ *
+ * 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 org.onosproject.net.device;
+
+import org.onosproject.net.driver.HandlerBehaviour;
+
+import java.util.List;
+
+/**
+ * Handler behaviour capable of creating device and port descriptions.
+ * These descriptions should be appropriately annotated to support downstream
+ * projections of the respective devices and their ports.
+ */
+public interface DeviceDescriptionDiscovery extends HandlerBehaviour {
+
+    /**
+     * Returns device description appropriately annotated to support
+     * downstream model extension via projections of the resulting device,
+     * as in the following example.
+     * <pre>
+     * MicrowaveDevice device = deviceService.get(id).as(MicrowaveDevice.class);
+     * </pre>
+     *
+     * @return annotated device description
+     */
+    DeviceDescription discoverDeviceDetails();
+
+    /**
+     * Returns list of port descriptions appropriately annotated to support
+     * downstream model extension via projections of their parent device,
+     * as in the following example.
+     * <pre>
+     * MicrowaveDevice device = deviceService.get(id).as(MicrowaveDevice.class);
+     * List&lt;MicrowavePort&gt; ports = device.microwavePorts(deviceService.getPorts(id));
+     * </pre>
+     *
+     * @return annotated device description
+     */
+    List<PortDescription> discoverPortDetails();
+
+}
diff --git a/core/api/src/main/java/org/onosproject/net/provider/AbstractProvider.java b/core/api/src/main/java/org/onosproject/net/provider/AbstractProvider.java
index a4926dd..fc82001 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/AbstractProvider.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/AbstractProvider.java
@@ -23,7 +23,7 @@
     private final ProviderId providerId;
 
     /**
-     * Creates a provider with the supplier identifier.
+     * Creates a provider with the supplied identifier.
      *
      * @param id provider id
      */
