diff --git a/models/common/src/main/java/org/onosproject/models/common/YangModelRegistrator.java b/models/common/src/main/java/org/onosproject/models/common/YangModelRegistrator.java
index bde6d7f..8a163a4 100644
--- a/models/common/src/main/java/org/onosproject/models/common/YangModelRegistrator.java
+++ b/models/common/src/main/java/org/onosproject/models/common/YangModelRegistrator.java
@@ -18,6 +18,7 @@
 import com.google.common.collect.ImmutableMap;
 import org.onosproject.yang.AbstractYangModelRegistrator;
 import org.onosproject.yang.gen.v1.ietfinettypes.rev20130715.IetfInetTypes;
+import org.onosproject.yang.gen.v1.ietfsystem.rev20140806.IetfSystem;
 import org.onosproject.yang.gen.v1.ietfyangtypes.rev20130715.IetfYangTypes;
 import org.apache.felix.scr.annotations.Component;
 import org.onosproject.yang.model.DefaultYangModuleId;
@@ -25,7 +26,9 @@
 import org.onosproject.yang.runtime.AppModuleInfo;
 import org.onosproject.yang.runtime.DefaultAppModuleInfo;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Component(immediate = true)
@@ -40,6 +43,13 @@
                     new DefaultAppModuleInfo(IetfInetTypes.class, null));
         appInfo.put(new DefaultYangModuleId("ietf-yang-types", "2013-07-15"),
                     new DefaultAppModuleInfo(IetfYangTypes.class, null));
+
+        List<String> systemFeatures = new ArrayList<>();
+        systemFeatures.add("local-users");
+        systemFeatures.add("authentication");
+        systemFeatures.add("ntp");
+        appInfo.put(new DefaultYangModuleId("ietf-system", "2014-08-06"),
+                    new DefaultAppModuleInfo(IetfSystem.class, systemFeatures));
         return ImmutableMap.copyOf(appInfo);
         // TODO: Do some other registration tasks...
     }
diff --git a/models/microsemi/src/main/java/org/onosproject/models/microsemi/MicrosemiModelRegistrator.java b/models/microsemi/src/main/java/org/onosproject/models/microsemi/MicrosemiModelRegistrator.java
index b04aac1..3c6a6c6 100644
--- a/models/microsemi/src/main/java/org/onosproject/models/microsemi/MicrosemiModelRegistrator.java
+++ b/models/microsemi/src/main/java/org/onosproject/models/microsemi/MicrosemiModelRegistrator.java
@@ -17,7 +17,6 @@
 
 import com.google.common.collect.ImmutableMap;
 import org.onosproject.yang.AbstractYangModelRegistrator;
-import org.onosproject.yang.gen.v1.ietfsystem.rev20140806.IetfSystem;
 import org.onosproject.yang.gen.v1.ietfsystemmicrosemi.rev20160505.IetfSystemMicrosemi;
 import org.apache.felix.scr.annotations.Component;
 import org.onosproject.yang.gen.v1.mseacfm.rev20160229.MseaCfm;
@@ -48,13 +47,6 @@
         appInfo.put(new DefaultYangModuleId("ietf-system-microsemi", "2016-05-05"),
                     new DefaultAppModuleInfo(IetfSystemMicrosemi.class, sysMicrosemiFeatures));
 
-        List<String> systemFeatures = new ArrayList<>();
-        systemFeatures.add("local-users");
-        systemFeatures.add("authentication");
-        systemFeatures.add("ntp");
-        appInfo.put(new DefaultYangModuleId("ietf-system", "2014-08-06"),
-                new DefaultAppModuleInfo(IetfSystem.class, systemFeatures));
-
         appInfo.put(new DefaultYangModuleId("msea-uni-evc-service", "2016-03-17"),
                 new DefaultAppModuleInfo(MseaUniEvcService.class, null));
         appInfo.put(new DefaultYangModuleId("msea-cfm", "2016-02-29"),
