diff --git a/app/controllers/webmin.controller.js b/app/controllers/webmin.controller.js
index e35ad76c3ac458ad721915c0310b80b1e77e6c8d..04d85bad7790b06419497f51ff70c2aab6a73467 100644
--- a/app/controllers/webmin.controller.js
+++ b/app/controllers/webmin.controller.js
@@ -19,7 +19,6 @@ let bma = require('../lib/streams/bma');
 let Identity = require('../lib/entity/identity');
 let network = require('../lib/network');
 let AbstractController = require('../controllers/abstract');
-var multicaster = require('../lib/streams/multicaster');
 var logger = require('../lib/logger')('webmin');
 
 module.exports = (dbConf, overConf) => {
@@ -49,13 +48,7 @@ function WebAdmin (dbConf, overConf) {
     yield pluggedConfP;
 
     // Routing documents
-    server
-    // The router asks for multicasting of documents
-      .pipe(server.router())
-      // The documents get sent to peers
-      .pipe(multicaster(server.conf))
-      // The multicaster may answer 'unreachable peer'
-      .pipe(server.router());
+    server.routing();
 
     return plugForDAL();
   });
diff --git a/index.js b/index.js
index d8e001ba1ebb509acaa0bb0fec93bd11cccd2341..16e2bb4ca898a34ee8cfbf4de905d1b381226fc9 100644
--- a/index.js
+++ b/index.js
@@ -5,7 +5,6 @@ var Server = require('./server');
 var bma  = require('./app/lib/streams/bma');
 var webmin  = require('./app/lib/streams/webmin');
 var upnp = require('./app/lib/upnp');
-var multicaster = require('./app/lib/streams/multicaster');
 var logger = require('./app/lib/logger')('ucoin');
 
 module.exports = function (dbConf, overConf) {
@@ -27,13 +26,7 @@ module.exports.statics = {
     let bmapi = yield bma(server, null, conf.httplogs);
 
     // Routing documents
-    server
-    // The router asks for multicasting of documents
-      .pipe(server.router())
-      // The documents get sent to peers
-      .pipe(multicaster(server.conf))
-      // The multicaster may answer 'unreachable peer'
-      .pipe(server.router());
+    server.routing();
 
     // Services
     yield module.exports.statics.startServices(server);
diff --git a/server.js b/server.js
index c4fed7bf1fdb7ee282ba4e17e85f8d2919867a1a..2f5d1fc642c2a23bdda296e313ef2eb12733a07f 100644
--- a/server.js
+++ b/server.js
@@ -17,6 +17,7 @@ var signature   = require('./app/lib/signature');
 var directory   = require('./app/lib/directory');
 var dos2unix    = require('./app/lib/dos2unix');
 var Synchroniser = require('./app/lib/sync');
+var multicaster = require('./app/lib/streams/multicaster');
 
 function Server (dbConf, overrideConf) {
 
@@ -429,6 +430,19 @@ function Server (dbConf, overrideConf) {
     };
   };
 
+  /**
+   * Enable routing features:
+   *   - The server will try to send documents to the network
+   *   - The server will eventually be notified of network failures
+   */
+  this.routing = () => {
+    // The router asks for multicasting of documents
+    this.pipe(this.router())
+      // The documents get sent to peers
+      .pipe(multicaster(this.conf))
+      // The multicaster may answer 'unreachable peer'
+      .pipe(this.router());
+  };
 }
 
 util.inherits(Server, stream.Duplex);