diff --git a/core/api/src/main/java/org/onosproject/core/GroupId.java b/core/api/src/main/java/org/onosproject/core/GroupId.java
index 2ab398b..c2a9d26 100644
--- a/core/api/src/main/java/org/onosproject/core/GroupId.java
+++ b/core/api/src/main/java/org/onosproject/core/GroupId.java
@@ -15,18 +15,39 @@
  */
 package org.onosproject.core;
 
+import com.google.common.base.MoreObjects;
+import org.onlab.util.Identifier;
+
 /**
  * Group identifier.
  */
-// TODO: require refactor to extend from Identifier base class
-public interface GroupId {
+public class GroupId extends Identifier<Integer> {
+
+    public GroupId(int id) {
+        super(id);
+    }
+
+    // Constructor for serialization
+    private GroupId() {
+        super(0);
+    }
 
     /**
      * Returns a group ID as an integer value.
      * The method is not intended for use by application developers.
      * Return data type may change in the future release.
      *
-     * @return a group ID as integer value
+     * @param id int value
+     * @return group ID
      */
-    int id();
+    public static GroupId valueOf(int id) {
+        return new GroupId(id);
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("id", "0x" + Integer.toHexString(identifier))
+                .toString();
+    }
 }
