diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java
index dc5e5e1..14af2b8 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java
@@ -21,14 +21,36 @@
 import java.util.concurrent.Future;
 
 /**
- * Created by ash on 07/04/15.
+ * Service for programming data plane flow rules in manner independent of
+ * specific device table pipeline configuration.
  */
 public interface FlowObjectiveService {
 
-    Future<Boolean> filter(DeviceId deviceId, Collection<FilteringObjective> filterObjectives);
+    /**
+     * Installs the filtering rules onto the specified device.
+     *
+     * @param deviceId            device identifier
+     * @param filteringObjectives the collection of filters
+     * @return a future indicating the success of the operation
+     */
+    Future<Boolean> filter(DeviceId deviceId, Collection<FilteringObjective> filteringObjectives);
 
+    /**
+     * Installs the forwarding rules onto the specified device.
+     *
+     * @param deviceId             device identifier
+     * @param forwardingObjectives the collection of forwarding objectives
+     * @return a future indicating the success of the operation
+     */
     Future<Boolean> forward(DeviceId deviceId, Collection<ForwardingObjective> forwardingObjectives);
 
+    /**
+     * Installs the next hop elements into the specified device.
+     *
+     * @param deviceId       device identifier
+     * @param nextObjectives the collection of next objectives
+     * @return a future indicating the success of the operation
+     */
     Future<Boolean> next(DeviceId deviceId, Collection<NextObjective> nextObjectives);
 
 }
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/package-info.java b/core/api/src/main/java/org/onosproject/net/flowobjective/package-info.java
new file mode 100644
index 0000000..65454a7
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2015 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.
+ */
+
+/**
+ * Abstractions for objective-based flow programming of data plane without
+ * requiring device pipeline structure awareness.
+ */
+package org.onosproject.net.flowobjective;
\ No newline at end of file
