diff --git a/xos/admin.py b/xos/admin.py
index 9f5a2b0..10814b0 100644
--- a/xos/admin.py
+++ b/xos/admin.py
@@ -4,120 +4,36 @@
 from core.admin import XOSBaseAdmin
 from django.contrib import admin
 from django import forms
-from services.metronetwork.models import *
 
 
-class MetroNetworkSystemAdmin(ReadOnlyAwareAdmin):
-    model = MetroNetworkSystem
-    verbose_name = "MetroNetwork System"
-    verbose_name_plural = "MetroNetwork System"
-    list_display = ("name", "administrativeState")
-    list_display_links = ('name',)
-    fieldsets = [(None, {
-        'fields': ['name', 'administrativeState', 'description'],
-        'classes': ['suit-tab suit-tab-general']})]
-
-class NetworkDeviceAdminForm(forms.ModelForm):
-
-    password = forms.CharField(required=False, widget = forms.PasswordInput(render_value=True))
-
-    class Meta:
-        model = NetworkDevice
-        fields = '__all__'
-
-
-class NetworkDeviceAdmin(XOSBaseAdmin):
-    verbose_name = "Network Device"
-    verbose_name_plural = "Network Devices"
-    form = NetworkDeviceAdminForm
-    list_display = ('id', 'restCtrlUrl', 'administrativeState', 'username')
-    list_display_links = ('id', 'restCtrlUrl', 'administrativeState', 'username')
-
-    fields = ('id', 'restCtrlUrl', 'administrativeState', 'username', 'password')
-
-class NetworkEdgePortAdmin(XOSBaseAdmin):
-    verbose_name = "Network Edge Port"
-    verbose_name_plural = "Network Edge Ports"
-    list_display = ('id', 'pid', 'element', 'bwpCfgCbs', 'bwpCfgEbs', 'bwpCfgCir', 'bwpCfgEir', 'name', 'location', 'latlng')
-    list_display_links = ('id', 'pid', 'element', 'bwpCfgCbs', 'bwpCfgEbs', 'bwpCfgCir', 'bwpCfgEir')
-
-    fields = ('id', 'pid', 'element', 'bwpCfgCbs', 'bwpCfgEbs', 'bwpCfgCir', 'bwpCfgEir', 'name', 'location', 'latlng')
-    readonly_fields = ('id', 'pid', 'element', 'bwpCfgCbs', 'bwpCfgEbs', 'bwpCfgCir', 'bwpCfgEir')
-
-class NetworkEdgeToEdgePointConnectionAdmin(XOSBaseAdmin):
-    verbose_name = "Metro Network E-Line Service"
-    verbose_name_plural = "Metro Network E-Line Services"
-    list_display = ('id', 'name', 'sid', 'type', 'vlanid', 'uni1', 'uni2', 'adminstate', 'operstate')
-    list_display_links = ('id', 'name', 'sid', 'type', 'vlanid', 'uni1', 'uni2', 'adminstate', 'operstate')
-
-    fields = ('id', 'name', 'sid', 'type', 'vlanid', 'uni1', 'uni2', 'adminstate', 'operstate', 'backend_status')
-    readonly_fields = ('id', 'sid', 'backend_status')
-
-class NetworkMultipointToMultipointConnectionAdmin(XOSBaseAdmin):
-    verbose_name = "Metro Network E-LAN Service"
-    verbose_name_plural = "Metro Network E-LAN Services"
-    list_display = ('id', 'name', 'sid', 'type', 'vlanid', 'adminstate', 'operstate')
-    list_display_links = ('id', 'name', 'sid', 'type', 'vlanid', 'adminstate', 'operstate')
-
-    fields = ('id', 'name', 'sid', 'type', 'vlanid', 'eps', 'adminstate', 'operstate', 'backend_status')
-    readonly_fields = ('id', 'sid', 'backend_status')
-
-class NetworkEdgeToMultipointConnectionAdmin(XOSBaseAdmin):
-    verbose_name = "Metro Network E-Tree Service"
-    verbose_name_plural = "Metro Network E-Tree Services"
-    list_display = ('id', 'name', 'sid', 'type', 'vlanid', 'adminstate', 'operstate')
-    list_display_links = ('id', 'name', 'sid', 'type', 'vlanid', 'adminstate', 'operstate')
-
-    fields = ('id', 'name', 'sid', 'type', 'vlanid', 'root', 'eps', 'adminstate', 'operstate', 'backend_status')
-    readonly_fields = ('id', 'sid', 'backend_status')
-
-class RemotePortAdmin(XOSBaseAdmin):
-    verbose_name = "Remote Port"
-    verbose_name_plural = "Remote Ports"
-    list_display = ('name', 'remoteportsite', 'edgeport')
-    list_display_links = ('name', 'remoteportsite', 'edgeport')
-
-    fields = ('name', 'remoteportsite', 'edgeport')
-
-class BandwidthProfileAdmin(XOSBaseAdmin):
+class XOSMetronetBandwithProfileAdmin(XOSBaseAdmin):
     verbose_name = "Bandwidth Profile"
-    verbose_name_plural = "Bandwidth Profiles"
-    list_display = ('bwpcfgcbs', 'bwpcfgebs', 'bwpcfgcir', 'bwpcfgeir', 'name')
-    list_display_links = ('bwpcfgcbs', 'bwpcfgebs', 'bwpcfgcir', 'bwpcfgeir', 'name')
+    list_display = ('cbs','ebs','cir','eir','name')
 
-    fields = ('bwpcfgcbs', 'bwpcfgebs', 'bwpcfgcir', 'bwpcfgeir', 'name')
+    fields = ('cbs', 'ebs', 'cir', 'eir', 'name')
 
-class ServiceSpokeAdmin(XOSBaseAdmin):
-    verbose_name = "Service Spoke"
-    verbose_name_plural = "Service Spokes"
-    list_display = ('name','vnodlocalsite', 'remotesubscriber', 'adminstate', 'operstate', 'autoattached')
-    list_display_links = ('name','vnodlocalsite', 'remotesubscriber', 'adminstate', 'operstate', 'autoattached')
+class XOSMetronetUNIAdmin(XOSBaseAdmin):
+    verbose_name = "User Network Interface"
+    list_display = ('tenant', 'vlanIds', 'cpe_id', 'latlng', 'name')
+    fields = ('tenant','vlanIds', 'cpe_id', 'latlng', 'name')
 
-    fields = ('name', 'id','vnodlocalsite', 'vnodlocalport', 'remotesubscriber', 'adminstate', 'operstate', 'backend_status', 'autoattached')
-    readonly_fields = ('id', 'remotesubscriber', 'adminstate', 'operstate', 'backend_status')
+class XOSMetronetEnterpriseLocationAdmin(XOSBaseAdmin):
+    verbose_name = "Enterprise Location"
+    list_display = ('name', 'cord_site_ip', 'cord_site_port', 'cord_site_username', 'cord_site_password', 'cord_site_type')
+    fields = ('name', 'cord_site_ip', 'cord_site_port', 'cord_site_username', 'cord_site_password', 'cord_site_type')
 
-class VnodGlobalServiceAdmin(XOSBaseAdmin):
-    verbose_name = "VNOD Global Service"
-    verbose_name_plural = "VNOD Global Services"
-    list_display = ('servicehandle', 'vlanid', 'type','operstate', 'adminstate')
-    list_display_links = ('servicehandle', 'vlanid', 'type','operstate', 'adminstate')
+class XOSMetronetOnosModelAdmin(XOSBaseAdmin):
+    verbose_name = "Open Network Operating System"
+    list_display = ('name', 'onos_ip', 'onos_port', 'onos_username', 'onos_password', 'onos_type')
+    fields = ('name', 'onos_ip', 'onos_port', 'onos_username', 'onos_password', 'onos_type')
 
-    fields = (
-        'id', 'servicehandle', 'vlanid', 'type', 'metronetworkmultipoint', 'metronetworkpointtopoint', 'metronetworkroottomultipoint', 'operstate', 'adminstate', 'spokes', 'bandwidthProfile')
-    readonly_fields = (
-        'id', 'operstate', 'backend_status', 'metronetworkmultipoint', 'metronetworkpointtopoint', 'metronetworkroottomultipoint')
+class XOSMetronetELineAdmin(XOSBaseAdmin):
+    verbose_name = "Ethernet Virtual Private Line"
+    list_display = ('name', 'connect_point_1_id', 'connect_point_2_id', 'vlanids', 'cord_site_name', 'bwp')
+    fields = ('name', 'connect_point_1_id', 'connect_point_2_id', 'vlanids', 'cord_site_name', 'bwp')
 
-admin.site.register(MetroNetworkSystem, MetroNetworkSystemAdmin)
-admin.site.register(NetworkDevice, NetworkDeviceAdmin)
-admin.site.register(NetworkEdgePort, NetworkEdgePortAdmin)
-admin.site.register(NetworkEdgeToEdgePointConnection, NetworkEdgeToEdgePointConnectionAdmin)
-admin.site.register(NetworkMultipointToMultipointConnection, NetworkMultipointToMultipointConnectionAdmin)
-admin.site.register(NetworkEdgeToMultipointConnection, NetworkEdgeToMultipointConnectionAdmin)
-admin.site.register(BandwidthProfile, BandwidthProfileAdmin)
-admin.site.register(ServiceSpoke, ServiceSpokeAdmin)
-admin.site.register(VnodGlobalService, VnodGlobalServiceAdmin)
-admin.site.register(RemotePort, RemotePortAdmin)
-
-
-
-
+admin.site.register(XOSMetronetBandwithProfile, XOSMetronetBandwithProfileAdmin)
+admin.site.register(XOSMetronetUNI, XOSMetronetUNIAdmin)
+admin.site.register(XOSMetronetEnterpriseLocation, XOSMetronetEnterpriseLocationAdmin)
+admin.site.register(XOSMetronetOnosModel, XOSMetronetOnosModelAdmin)
+admin.site.register(XOSMetronetELine, XOSMetronetELineAdmin)
\ No newline at end of file
