diff --git a/carrierethernet/pom.xml b/carrierethernet/pom.xml
index 1a97a99..bad3d84 100644
--- a/carrierethernet/pom.xml
+++ b/carrierethernet/pom.xml
@@ -19,11 +19,10 @@
     <parent>
         <groupId>org.onosproject</groupId>
         <artifactId>onos-dependencies</artifactId>
-        <version>1.9.0</version>
+        <version>1.10.1</version>
         <relativePath/><!-- parent is remote -->
     </parent>
 
-    <groupId>org.onosproject</groupId>
     <artifactId>onos-app-carrierethernet</artifactId>
     <version>04.2017</version>
     <packaging>bundle</packaging>
@@ -33,7 +32,7 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <onos.version>1.9.0</onos.version>
+        <onos.version>1.10.1</onos.version>
         <api.version>1.0.0</api.version>
         <onos.app.name>org.onosproject.ecord.carrierethernet</onos.app.name>
         <onos.app.origin>ON.Lab</onos.app.origin>
@@ -68,7 +67,7 @@
         <dependency>
             <groupId>org.onosproject</groupId>
             <artifactId>onos-apps-newoptical</artifactId>
-            <version>1.10.0-SNAPSHOT</version>
+            <version>${onos.version}</version>
         </dependency>
 
         <dependency>
diff --git a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/app/CarrierEthernetEvcUtils.java b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/app/CarrierEthernetEvcUtils.java
index fab928b..186b902 100644
--- a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/app/CarrierEthernetEvcUtils.java
+++ b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/app/CarrierEthernetEvcUtils.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2017 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.ecord.carrierethernet.app;
 
 import org.onlab.packet.VlanId;
diff --git a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/cli/commands/CarrierEthernetCreateEvcCommand.java b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/cli/commands/CarrierEthernetCreateEvcCommand.java
index c5ce82e..d96695b 100644
--- a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/cli/commands/CarrierEthernetCreateEvcCommand.java
+++ b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/cli/commands/CarrierEthernetCreateEvcCommand.java
@@ -41,7 +41,7 @@
             "EVC type (defaults to POINT_TO_POINT or MULTIPOINT_TO_MULTIPOINT, depending on number of UNIs)",
             required = false, multiValued = false)
     String argEvcType = null;
-    @Argument(index = 3, name = "argUniList",
+    @Argument(index = 2, name = "argUniList",
             description = "List of UNIs (if point to multipoint, first is root, other are leaves)",
             required = true, multiValued = true)
     List<String> argUniList = Lists.newArrayList();
diff --git a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/CarrierEthernetWebResource.java b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/CarrierEthernetWebResource.java
index f606026..c6a06ca 100644
--- a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/CarrierEthernetWebResource.java
+++ b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/CarrierEthernetWebResource.java
@@ -65,7 +65,7 @@
 
     /**
      * Gets an EVC entry by deviceId.
-     *
+     * @param evcId The ID of an EVC
      * @return 200 OK with the requested Evc.
      */
     @GET
@@ -79,6 +79,7 @@
 
     /**
      * Install an EVC with given parameters.
+     * @param stream An input stream
      *
      * @return 200 OK if the EVC was installed
      */
diff --git a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/EvcCodec.java b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/EvcCodec.java
index cfc378f..ac8af69 100644
--- a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/EvcCodec.java
+++ b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/EvcCodec.java
@@ -1,4 +1,18 @@
-package org.onosproject.ecord.carrierethernet.rest;
+/*
+ * Copyright 2017-present 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.ecord.carrierethernet.rest;
 
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
diff --git a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/EvcCodecRegistrator.java b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/EvcCodecRegistrator.java
index 9405b7c..df833da 100644
--- a/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/EvcCodecRegistrator.java
+++ b/carrierethernet/src/main/java/org/onosproject/ecord/carrierethernet/rest/EvcCodecRegistrator.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2017-present 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.ecord.carrierethernet.rest;
 
 import org.apache.felix.scr.annotations.Activate;
