diff --git a/core/lib.rs b/core/lib.rs
index 06395b5ac90abbdd996ccba6629562c388e02eec..423c836ad6675992d0bacea035d589b8dc28fa82 100644
--- a/core/lib.rs
+++ b/core/lib.rs
@@ -69,12 +69,25 @@ use threadpool::ThreadPool;
 /// Number of thread in plugins ThreadPool
 pub static THREAD_POOL_SIZE: &'static usize = &2;
 
+#[macro_export]
+macro_rules! durs_core_server {
+    ( $closure_inject_cli:expr, $closure_plug:expr ) => {{
+        duniter_core::main(
+            env!("CARGO_PKG_NAME"),
+            env!("CARGO_PKG_VERSION"),
+            &DursOpt::clap(),
+            $closure_inject_cli,
+            $closure_plug,
+        );
+    }};
+}
+
 #[macro_export]
 macro_rules! durs_inject_cli {
-    ( $( $x:ty ),* ) => {
+    ( $( $Module:ty ),* ) => {
         {
             |core| {
-                $(core.inject_cli_subcommand::<$x>();)*
+                $(core.inject_cli_subcommand::<$Module>();)*
             }
         }
     };
@@ -82,11 +95,11 @@ macro_rules! durs_inject_cli {
 
 #[macro_export]
 macro_rules! durs_plug {
-    ( $x:ty, $( $y:ty ),* ) => {
+    ( [ $( $NetworkModule:ty ),* ], [ $( $Module:ty ),* ] ) => {
         {
             |core| {
-                $(core.plug::<$y>();)*
-                core.plug_network::<$x>();
+                $(core.plug::<$Module>();)*
+                $(core.plug_network::<$NetworkModule>();)*
             }
         }
     };
diff --git a/src/main.rs b/src/main.rs
index 1e602d99eac8db95f9101715892e5918e72b5f4c..0ef666e3306801eb8c037a5ad749443cbc36cf6e 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -48,32 +48,20 @@ use structopt::StructOpt;
 #[cfg(unix)]
 #[cfg(not(target_arch = "arm"))]
 fn main() {
-    duniter_core::main(
-        env!("CARGO_PKG_NAME"),
-        env!("CARGO_PKG_VERSION"),
-        &DursOpt::clap(),
-        durs_inject_cli![WS2PModule, TuiModule],
-        durs_plug![WS2PModule, TuiModule],
+    durs_core_server!(
+        durs_inject_cli![WS2PModule, TuiModule /*,DasaModule*/],
+        durs_plug!([WS2PModule], [TuiModule /*,DasaModule*/])
     );
 }
 #[cfg(unix)]
 #[cfg(target_arch = "arm")]
 fn main() {
-    duniter_core::main(
-        env!("CARGO_PKG_NAME"),
-        env!("CARGO_PKG_VERSION"),
-        &DursOpt::clap(),
+    durs_core_server!(
         durs_inject_cli![WS2PModule, TuiModule],
-        durs_plug![WS2PModule, TuiModule],
+        durs_plug!([WS2PModule], [TuiModule])
     );
 }
 #[cfg(windows)]
 fn main() {
-    duniter_core::main(
-        env!("CARGO_PKG_NAME"),
-        env!("CARGO_PKG_VERSION"),
-        &DursOpt::clap(),
-        durs_inject_cli![WS2PModule],
-        durs_plug![WS2PModule],
-    );
+    durs_core_server!(durs_inject_cli![WS2PModule], durs_plug!([WS2PModule], []));
 }