read config from mg conf
diff --git a/eurekaclient/index.js b/eurekaclient/index.js
index 49d1969..b582390 100644
--- a/eurekaclient/index.js
+++ b/eurekaclient/index.js
@@ -7,39 +7,46 @@
 var debug = require('debug')('plugin:eurekeclient');
 var util = require('util');
 var os = require('os');
-var config = require('./eureka-client.json');
 
-const lookup = require('./servicelookup.json');
 const port = 8000;
 const Eureka = require('eureka-js-client').Eureka;
 
-
-function getIPAddr() {
-  var interfaces = os.networkInterfaces();
-  var addresses = [];
-  for (var k in interfaces) {
-      for (var k2 in interfaces[k]) {
-          var address = interfaces[k][k2];
-          if (address.family === 'IPv4' && !address.internal) {
-              addresses.push(address.address);
-          }
-      }
-  }
-  return addresses[0];  
-}
-
-config.instance.hostName = os.hostname();
-config.instance.ipAddr = getIPAddr();
-config.instance.port["$"] = port;
-config.instance.port["@enabled"] = true;
-config.instance.dataCenterInfo["@class"] = "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo";
-
-const client = new Eureka(config);
-
-client.start();
-
 module.exports.init = function (config, logger, stats) {
 
+  const lookup = config.servicemap;
+  
+  config.instance.hostName = os.hostname();
+  debug('local hostName: ' + config.instance.hostName);
+  config.instance.ipAddr = getIPAddr();
+  config.instance.port = {};
+  config.instance.port["$"] = port;
+  config.instance.port["@enabled"] = true;
+  config.instance.dataCenterInfo["@class"] = "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo";
+
+  const client = new Eureka(config);
+
+  try {
+    client.start();  
+  } catch (err) {
+    console.error(err);
+    client.stop();
+  }
+
+  function getIPAddr() {
+    var interfaces = os.networkInterfaces();
+    var addresses = [];
+    for (var k in interfaces) {
+        for (var k2 in interfaces[k]) {
+            var address = interfaces[k][k2];
+            if (address.family === 'IPv4' && !address.internal) {
+                addresses.push(address.address);
+            }
+        }
+    }
+    debug ('localhost ip: ' + addresses[0]);
+    return addresses[0];  
+  }
+
   function getAppName(url) {
     for (var index in lookup) {
       if (url.includes(lookup[index].uri) || url == lookup[index].uri) {
@@ -68,13 +75,19 @@
       var appInfo = getAppName(req.url);
       var endpoint = getTarget(appInfo.app, appInfo.secure);
 
-      req.targetHostname = endpoint.hostName;
-      req.targetPort = endpoint.port;
-      req.targetPath = req.url;
-      if (appInfo.secure) {
-        req.targetSecure = true;
+      if (endpoint.hostName) {
+        debug("target hostname: " + endpoint.hostName);
+        req.targetHostname = endpoint.hostName;
+        debug("target port: " + endpoint.port);
+        req.targetPort = endpoint.port;
+        req.targetPath = req.url;
+        if (appInfo.secure) {
+          req.targetSecure = true;
+        } else {
+          req.targetSecure = false;
+        }        
       } else {
-        req.targetSecure = false;
+        console.warn("Target enpoint from Eureka not found");
       }
       next();
     }