diff --git a/web/gui/src/main/webapp/_doc/fw/util/README.lion.md b/web/gui/src/main/webapp/_doc/fw/util/README.lion.md
new file mode 100644
index 0000000..390ecff
--- /dev/null
+++ b/web/gui/src/main/webapp/_doc/fw/util/README.lion.md
@@ -0,0 +1,6 @@
+Localization Service
+====================
+
+### Function definitions
+
+`bundle(key)`
diff --git a/web/gui/src/main/webapp/app/fw/util/lion.js b/web/gui/src/main/webapp/app/fw/util/lion.js
new file mode 100644
index 0000000..5a0cb69
--- /dev/null
+++ b/web/gui/src/main/webapp/app/fw/util/lion.js
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2017-present 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.
+ *
+ */
+
+/*
+ * Copyright 2017-present 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 -- Lion -- Localization Utilities
+ */
+(function () {
+    'use strict';
+
+    var $log, fs;
+
+    // returns a lion bundle for the given key
+    function bundle(key) {
+
+        // TODO: Use message handler mech. to get bundle from server
+        // For now, a fake placeholder bundle
+
+        var bun = {
+            computer: 'Calcolatore',
+            disk: 'Disco',
+            monitor: 'Schermo',
+            keyboard: 'Tastiera'
+        };
+
+        $log.warn('Using fake bundle', bun);
+        return bun;
+    }
+
+    angular.module('onosUtil')
+        .factory('LionService', ['$log', 'FnService',
+
+        function (_$log_, _fs_) {
+            $log = _$log_;
+            fs = _fs_;
+
+            return {
+                bundle: bundle
+            };
+        }]);
+}());
diff --git a/web/gui/src/main/webapp/app/view/cluster/cluster.js b/web/gui/src/main/webapp/app/view/cluster/cluster.js
index 451a067..0db243a 100644
--- a/web/gui/src/main/webapp/app/view/cluster/cluster.js
+++ b/web/gui/src/main/webapp/app/view/cluster/cluster.js
@@ -22,7 +22,7 @@
     'use strict';
 
     // injected references
-    var $log, $scope, $location, fs, tbs, ns, mast, ps, wss, is, ks;
+    var $log, $scope, fs, ns, mast, ps, is, wss, lion;
 
     // internal state
     var detailsPanel,
@@ -196,22 +196,24 @@
 
     angular.module('ovCluster', [])
         .controller('OvClusterCtrl',
-        ['$log', '$scope', 'TableBuilderService', 'NavService', 'MastService',
-        'PanelService', 'KeyService', 'IconService','WebSocketService',
-        'FnService',
+        ['$log', '$scope', 'FnService', 'NavService', 'MastService',
+        'PanelService', 'IconService','WebSocketService',
+        'LionService', 'TableBuilderService',
 
-        function (_$log_, _$scope_, tbs, _ns_, _mast_, _ps_, _ks_, _is_,
-                _wss_, _fs_) {
+            // var $log, $scope, fs, ns, mast, ps, is, wss, lion;
+
+    function (_$log_, _$scope_, _fs_, _ns_, _mast_, _ps_, _is_, _wss_, _lion_, tbs) {
             var handlers = {};
 
             $log = _$log_;
             $scope = _$scope_;
             fs = _fs_;
             ns = _ns_;
-            is = _is_;
-            wss = _wss_;
             mast = _mast_;
             ps = _ps_;
+            is = _is_;
+            wss = _wss_;
+            lion = _lion_;
 
             $scope.panelData = {};
 
@@ -238,6 +240,11 @@
             wss.unbindHandlers(handlers);
         });
 
+        // ++++ Temp test code for Localization POC ++++
+        var bun = lion.bundle('core.cluster');
+        $log.debug('Lion bundle test: computer = ', bun.computer);
+        // ++++ Temp test code for Localization POC ++++
+
         $log.log('OvClusterCtrl has been created');
     }])
 
diff --git a/web/gui/src/main/webapp/index.html b/web/gui/src/main/webapp/index.html
index 061cd7b..07395cb 100644
--- a/web/gui/src/main/webapp/index.html
+++ b/web/gui/src/main/webapp/index.html
@@ -57,6 +57,7 @@
     <script src="app/fw/util/theme.js"></script>
     <script src="app/fw/util/keys.js"></script>
     <script src="app/fw/util/prefs.js"></script>
+    <script src="app/fw/util/lion.js"></script>
 
     <script src="app/fw/mast/mast.js"></script>
     <script src="app/fw/nav/nav.js"></script>
