diff --git a/net/api/src/main/java/org/onlab/onos/event/EventDispatcher.java b/net/api/src/main/java/org/onlab/onos/event/EventDispatcher.java
index a9db575..8236d899 100644
--- a/net/api/src/main/java/org/onlab/onos/event/EventDispatcher.java
+++ b/net/api/src/main/java/org/onlab/onos/event/EventDispatcher.java
@@ -1,9 +1,10 @@
 package org.onlab.onos.event;
 
 /**
- * Abstraction of a mechanism capable of accepting and dispatching events.
- * Whether the events are accepted and the dispatched synchronously or
- * asynchronously is unspecified.
+ * Abstraction of a mechanism capable of accepting and dispatching events to
+ * appropriate event sinks. Where the event sinks are obtained is unspecified.
+ * Similarly, whether the events are accepted and dispatched synchronously
+ * or asynchronously is unspecified as well.
  */
 public interface EventDispatcher<E extends Event> {
 
diff --git a/net/api/src/main/java/org/onlab/onos/net/Device.java b/net/api/src/main/java/org/onlab/onos/net/Device.java
index 8b6368d..700654f 100644
--- a/net/api/src/main/java/org/onlab/onos/net/Device.java
+++ b/net/api/src/main/java/org/onlab/onos/net/Device.java
@@ -3,14 +3,63 @@
 import org.onlab.onos.net.provider.Provided;
 
 /**
- * Representation of an network infrastructure device.
+ * Representation of a network infrastructure device.
  */
 public interface Device extends Provided {
 
-    // type, e.g. switch, router, firewall, ips, controller
+    /**
+     * Coarse classification of the type of the infrastructure device.
+     */
+    public enum Type {
+        SWITCH, ROUTER, FIREWALL, BALANCER, IPS, IDS, CONTROLLER, OTHER
+    }
 
-    // id (uri within)
+    /**
+     * Returns the device identifier.
+     *
+     * @return device id
+     */
+    DeviceId id();
 
-    // ports
+    /**
+     * Returns the type of the infrastructure device.
+     *
+     * @return type of the device
+     */
+    Type type();
+
+    /**
+     * Returns the device manufacturer name.
+     *
+     * @return manufacturer name
+     */
+    String manufacturer();
+
+    /**
+     * Returns the device hardware version.
+     *
+     * @return hardware version
+     */
+    String hwVersion();
+
+    /**
+     * Returns the device software version.
+     *
+     * @return software version
+     */
+    String swVersion();
+
+    /**
+     * Returns the device serial number.
+     *
+     * @return serial number
+     */
+    String serialNumber();
+
+    // Device realizedBy(); ?
+
+    // ports are not provided directly, but rather via DeviceService.getPorts(Device device);
+
+    // Set<Behavior> behaviours(); // set of supported behaviours
 
 }
diff --git a/net/api/src/main/java/org/onlab/onos/net/Link.java b/net/api/src/main/java/org/onlab/onos/net/Link.java
index 2087377..62fc9f8 100644
--- a/net/api/src/main/java/org/onlab/onos/net/Link.java
+++ b/net/api/src/main/java/org/onlab/onos/net/Link.java
@@ -5,7 +5,24 @@
 /**
  * Abstraction of a network infrastructure link.
  */
-public interface Link extends Provided { // TODO: Also should extend graph Edge
+public interface Link extends Provided { // TODO: Also should extend graph Edge once the graph module is checked in
+
+    /**
+     * Coarse representation of the link type.
+     */
+    public enum Type {
+        /**
+         * Signifies that this is a direct single-segment link.
+         */
+        DIRECT,
+
+        /**
+         * Signifies that this link is potentially comprised from multiple
+         * underlying segments or hops, e.g. optical links, tunnel links,
+         * multi-hop links spanning 'dark' switches
+         */
+        INDIRECT
+    }
 
     /**
      * Returns the link source connection point.
@@ -21,4 +38,6 @@
      */
     ConnectPoint dst();
 
+    // LinkInfo info(); // Additional link information / decorations
+
 }
diff --git a/net/api/src/main/java/org/onlab/onos/net/provider/AbstractProvider.java b/net/api/src/main/java/org/onlab/onos/net/provider/AbstractProvider.java
new file mode 100644
index 0000000..d1c992f
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/provider/AbstractProvider.java
@@ -0,0 +1,24 @@
+package org.onlab.onos.net.provider;
+
+/**
+ * Base provider implementation.
+ */
+public abstract class AbstractProvider implements Provider {
+
+    private final ProviderId providerId;
+
+    /**
+     * Creates a provider with the supplier identifier.
+     *
+     * @param id provider id
+     */
+    protected AbstractProvider(ProviderId id) {
+        this.providerId = id;
+    }
+
+    @Override
+    public ProviderId id() {
+        return providerId;
+    }
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/provider/Provided.java b/net/api/src/main/java/org/onlab/onos/net/provider/Provided.java
index 71e670a..89364c2 100644
--- a/net/api/src/main/java/org/onlab/onos/net/provider/Provided.java
+++ b/net/api/src/main/java/org/onlab/onos/net/provider/Provided.java
@@ -10,6 +10,6 @@
      *
      * @return provider identification
      */
-    ProviderId id();
+    ProviderId providerId();
 
 }
