diff --git a/conf/browsersync.conf.js b/conf/browsersync.conf.js
index 017aa20..03b0a5d 100644
--- a/conf/browsersync.conf.js
+++ b/conf/browsersync.conf.js
@@ -18,8 +18,6 @@
 
 const conf = require('./gulp.conf');
 const proxy = require('./proxy').proxy;
-const extensionsProxy = require('./proxy').extensionsProxy;
-const socketProxy = require('./proxy').socketProxy;
 
 module.exports = function () {
   return {
@@ -29,16 +27,14 @@
         conf.paths.src
       ],
       middleware: function(req, res, next){
-        if (req.url.indexOf('xosapi') !== -1) {
+        if (
+          req.url.indexOf('xosapi') !== -1
+          || req.url.indexOf('socket.io') !== -1
+          || req.url.indexOf('extensions') !== -1
+        ) {
           proxy.web(req, res);
         }
-        else if (req.url.indexOf('socket.io') !== -1) {
-          socketProxy.web(req, res);
-        }
-        else if (req.url.indexOf('extensions') !== -1) {
-          extensionsProxy.web(req, res);
-        }
-        else{
+        else {
           next();
         }
       }
diff --git a/conf/proxy.js b/conf/proxy.js
index e383c27..41a07b6 100644
--- a/conf/proxy.js
+++ b/conf/proxy.js
@@ -26,31 +26,11 @@
   target: `http://${target}`
 });
 
-const extensionsProxy = httpProxy.createProxyServer({
-  target: `http://${target}/xos/`
-});
-
-const socketProxy = httpProxy.createProxyServer({
-  target: `http://${target}/`
-});
-
 proxy.on('error', function(error, req, res) {
   res.writeHead(500, {'Content-Type': 'text/plain'});
   console.error('[Proxy]', error);
 });
 
-extensionsProxy.on('error', function(error, req, res) {
-  res.writeHead(500, {'Content-Type': 'text/plain'});
-  console.error('[extensionsProxy]', error);
-});
-
-socketProxy.on('error', function(error, req, res) {
-  res.writeHead(500, {'Content-Type': 'text/plain'});
-  console.error('[socketProxy]', error);
-});
-
 module.exports = {
-  proxy,
-  extensionsProxy,
-  socketProxy
+  proxy
 };
\ No newline at end of file
