diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/Bundle.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/Bundle.java
index 622d0e3..c51cc84 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/Bundle.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/Bundle.java
@@ -72,7 +72,7 @@
         XosFunction func;
         switch (xfd) {
             case URL_FILTER:
-                func = new UrlFilterFunction(xfd);
+                func = new UrlFilterFunction();
                 break;
 
             default:
diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/UrlFilterFunction.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/UrlFilterFunction.java
index a2e2f2c..863681c 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/UrlFilterFunction.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/UrlFilterFunction.java
@@ -29,17 +29,19 @@
     private static final String LEVEL = "level";
 
     /**
-     * Denotes the URL filtering levels available.
+     * Denotes the URL filtering levels available. From most restrictive
+     * to least restrictive. Note: <em>OFF</em> denies everything;
+     * <em>NONE</em> allows everything.
      */
-    public enum Level { PG, PG_13, R }
+    public enum Level { OFF, G, PG, PG_13, R, NONE }
 
     /**
      * The default URL filtering level
      */
-    public static final Level DEFAULT_LEVEL = Level.PG;
+    public static final Level DEFAULT_LEVEL = Level.G;
 
-    public UrlFilterFunction(XosFunctionDescriptor xfd) {
-        super(xfd);
+    public UrlFilterFunction() {
+        super(XosFunctionDescriptor.URL_FILTER);
     }
 
     @Override
diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/XosFunctionFactory.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/XosFunctionFactory.java
index 991b72b..a91dbfb 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/XosFunctionFactory.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/XosFunctionFactory.java
@@ -17,9 +17,6 @@
     private static final String LEVEL = "level";
     private static final String LEVELS = "levels";
 
-    private static final UrlFilterFunction.Level DEFAULT_FILTER_LEVEL =
-        UrlFilterFunction.Level.PG;
-
 
     // no instantiation
     private XosFunctionFactory() {}
@@ -91,7 +88,7 @@
         @Override
         ObjectNode params() {
             ObjectNode result = objectNode();
-            result.put(LEVEL, DEFAULT_FILTER_LEVEL.name());
+            result.put(LEVEL, UrlFilterFunction.DEFAULT_LEVEL.name());
             ArrayNode levels = arrayNode();
             for (UrlFilterFunction.Level lvl: UrlFilterFunction.Level.values()) {
                 levels.add(lvl.name());
