diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/DefaultMirroringDescription.java b/core/api/src/main/java/org/onosproject/net/behaviour/DefaultMirroringDescription.java
index 47a19a3..0c82e48 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/DefaultMirroringDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/DefaultMirroringDescription.java
@@ -29,7 +29,7 @@
  * Default implementation of mirroring description entity.
  */
 @Beta
-public class DefaultMirroringDescription extends AbstractDescription
+public final class DefaultMirroringDescription extends AbstractDescription
     implements MirroringDescription {
 
     private final MirroringName mirroringName;
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/MirroringStatistics.java b/core/api/src/main/java/org/onosproject/net/behaviour/MirroringStatistics.java
index 6713633..633995f 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/MirroringStatistics.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/MirroringStatistics.java
@@ -16,19 +16,27 @@
 
 package org.onosproject.net.behaviour;
 
-import com.google.common.base.MoreObjects;
-
 import java.util.Map;
 import java.util.Objects;
 
+import com.google.common.base.MoreObjects;
+
 /**
  * Represents statistics associated to a mirroring.
  */
 public final class MirroringStatistics {
 
-    private MirroringName mirroringName;
-    private int txBytes;
-    private int txPackets;
+    private final MirroringName mirroringName;
+    private final long txBytes;
+    private final long txPackets;
+
+    /**
+     * Hide private constructor to prevent calls to new().
+     */
+    private MirroringStatistics() {
+        // This should never happen
+        throw new UnsupportedOperationException();
+    }
 
     /**
      * Statistics associated to a named mirroring.
@@ -37,7 +45,7 @@
      * @param bytes transmitted bytes
      * @param packets transmitted packets
      */
-    private MirroringStatistics(String name, int bytes, int packets) {
+    private MirroringStatistics(String name, long bytes, long packets) {
         this.mirroringName = MirroringName.mirroringName(name);
         this.txBytes = bytes;
         this.txPackets = packets;
@@ -78,7 +86,7 @@
      *
      * @return the packets
      */
-    public long packtes() {
+    public long packets() {
         return txPackets;
     }
 
@@ -107,7 +115,7 @@
         return MoreObjects.toStringHelper(getClass())
                 .add("name", name())
                 .add("tx_bytes", bytes())
-                .add("tx_packets", packtes())
+                .add("tx_packets", packets())
                 .toString();
     }
 
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/TunnelEndPoint.java b/core/api/src/main/java/org/onosproject/net/behaviour/TunnelEndPoint.java
index 2b96452..ab9eee5 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/TunnelEndPoint.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/TunnelEndPoint.java
@@ -22,9 +22,9 @@
  * Represents for source end point or destination end point of a tunnel. Maybe a tunnel
  * based on ConnectPoint, IpAddress, MacAddress and so on is built.
  */
-public class TunnelEndPoint<T> {
+public final class TunnelEndPoint<T> {
 
-    protected final T value;
+    private final T value;
 
     /**
      * Default constructor.
