diff --git a/core/api/src/main/java/org/onosproject/net/driver/DefaultDriverHandler.java b/core/api/src/main/java/org/onosproject/net/driver/DefaultDriverHandler.java
index 28fdb2f..e415e9a 100644
--- a/core/api/src/main/java/org/onosproject/net/driver/DefaultDriverHandler.java
+++ b/core/api/src/main/java/org/onosproject/net/driver/DefaultDriverHandler.java
@@ -25,7 +25,7 @@
  */
 public class DefaultDriverHandler implements DriverHandler {
 
-    private final DefaultDriverData data;
+    private final DriverData data;
 
     // Reference to service directory to provide run-time context.
     protected static ServiceDirectory serviceDirectory = new DefaultServiceDirectory();
@@ -35,7 +35,7 @@
      *
      * @param data driver data to attach
      */
-    public DefaultDriverHandler(DefaultDriverData data) {
+    public DefaultDriverHandler(DriverData data) {
         this.data = data;
     }
 
diff --git a/core/api/src/main/java/org/onosproject/net/driver/DriverData.java b/core/api/src/main/java/org/onosproject/net/driver/DriverData.java
index 1d66ea9..64f1fd9 100644
--- a/core/api/src/main/java/org/onosproject/net/driver/DriverData.java
+++ b/core/api/src/main/java/org/onosproject/net/driver/DriverData.java
@@ -21,6 +21,10 @@
 /**
  * Container for data about a device. Data is stored using
  * {@link org.onosproject.net.MutableAnnotations}.
+ *
+ * Note that only derivatives of {@link HandlerBehaviour} can expect mutability
+ * from the backing driver data instance; other behaviours must rely on
+ * immutable {@link org.onosproject.net.Annotations} only.
  */
 public interface DriverData extends MutableAnnotations {
 
diff --git a/core/api/src/main/java/org/onosproject/net/driver/Projectable.java b/core/api/src/main/java/org/onosproject/net/driver/Projectable.java
new file mode 100644
index 0000000..02dce7e
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/driver/Projectable.java
@@ -0,0 +1,47 @@
+/*
+ * 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.driver;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Abstraction of an entity capable of being projected as another entity.
+ */
+@Beta
+public interface Projectable {
+
+    /**
+     * Returns the specified projection of this entity if such projection
+     * is supported.
+     *
+     * @param projectionClass requested projection class
+     * @param <B> type of behaviour
+     * @return projection instance or null if requested projection is not supported
+     */
+    <B extends Behaviour> B as(Class<B> projectionClass);
+
+    /**
+     * Returns true if this entity is capable of being projected as the
+     * specified class.
+     *
+     * @param projectionClass projection class
+     * @param <B> type of behaviour
+     * @return true if the requested projection is supported
+     */
+    <B extends Behaviour> boolean is(Class<B> projectionClass);
+
+}
