diff --git a/web/gui/src/main/webapp/app/fw/remote/urlfn.js b/web/gui/src/main/webapp/app/fw/remote/urlfn.js
new file mode 100644
index 0000000..4aa88ed
--- /dev/null
+++ b/web/gui/src/main/webapp/app/fw/remote/urlfn.js
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ ONOS GUI -- Remote -- General Purpose Functions
+
+ @author Simon Hunt
+ @author Bri Prebilic Cole
+ */
+(function () {
+    'use strict';
+
+    angular.module('onosRemote')
+        .factory('UrlFnService', ['$location', function ($loc) {
+
+            function urlPrefix() {
+                return $loc.protocol() + '://' + $loc.host() + ':' + $loc.port();
+            }
+
+            return {
+               urlPrefix: urlPrefix
+            };
+        }]);
+
+}());
