diff --git a/xos/services/vpn/admin.py b/xos/services/vpn/admin.py
index 10a1e9a..f954570 100644
--- a/xos/services/vpn/admin.py
+++ b/xos/services/vpn/admin.py
@@ -11,15 +11,14 @@
 
 class VPNServiceForm(forms.ModelForm):
 
+    exposed_ports = forms.CharField(required=True)
+
     def save(self, commit=True):
-        if self.instance.slices.all().count() == 0:
-            raise XOSValidationError("Service must have a slice.")
-        if not self.instance.slices.all()[0].exposed_ports:
-            raise XOSValidationError("Slice assoicated with service must have at least one exposed port.")
-        self.instance.exposed_ports = self.parse_ports(self.instance.slices.all()[0].exposed_ports)
+        self.instance.exposed_ports = self.cleaned_data['exposed_ports']
         return super(VPNServiceForm, self).save(commit=commit)
 
-    def parse_ports(self, exposed_ports):
+    def clean_exposed_ports(self):
+        exposed_ports = self.cleaned_data['exposed_ports']
         port_mapping = {"udp": [], "tcp": []}
         parts = exposed_ports.split(",")
         for part in parts:
@@ -67,7 +66,7 @@
     list_display_links = ('backend_status_icon', 'name', )
 
     fieldsets = [(None, {'fields': ['backend_status_text', 'name', 'enabled',
-                                    'versionNumber', 'description', "view_url"],
+                                    'versionNumber', 'description', "view_url", 'exposed_ports'],
                          'classes':['suit-tab suit-tab-general']})]
 
     readonly_fields = ('backend_status_text', )
