diff --git a/src/cli/certify.rs b/src/cli/certify.rs
index a51a4cbc85cecf5d19d112e08f775f3cec07dee1..84b805285ddc05512c8ee0ce7fcb38a16174915f 100644
--- a/src/cli/certify.rs
+++ b/src/cli/certify.rs
@@ -1,9 +1,9 @@
 use crate::bma::BmaNode;
 use crate::bma::lookup_identity::{LookupResult, lookup2identities, lookup_print};
-use crate::crypto::scrypt_duniter_key::ScryptDuniterKey;
+use crate::crypto::duniter_key::scrypt_duniter_key::ScryptDuniterKey;
 use crate::crypto::duniter_key::ToDuniterKey;
 use crate::dubp::documents::certification::Certification;
-use crate::crypto::signable::Signable;
+use crate::dubp::signable::Signable;
 
 pub fn certify(node: BmaNode, uid_or_pub: String) -> Result<(), String> {
     let address = node.get_address();
diff --git a/src/crypto/base58_duniter_key.rs b/src/crypto/duniter_key/base58_duniter_key.rs
similarity index 100%
rename from src/crypto/base58_duniter_key.rs
rename to src/crypto/duniter_key/base58_duniter_key.rs
diff --git a/src/crypto/duniter_key.rs b/src/crypto/duniter_key/mod.rs
similarity index 84%
rename from src/crypto/duniter_key.rs
rename to src/crypto/duniter_key/mod.rs
index 63b8e7573be9f25e286063be29ea5126b1c907e2..c2e393df08d38f591542800d168e5e2b2fc536be 100644
--- a/src/crypto/duniter_key.rs
+++ b/src/crypto/duniter_key/mod.rs
@@ -3,10 +3,16 @@ use std::fmt::Formatter;
 use bs58;
 use cryptoxide::ed25519;
 
+pub use scrypt_duniter_key::ScryptDuniterKey;
+pub use seed_duniter_key::SeedDuniterKey;
+
 use crate::crypto::duniter_signature::DuniterSignature;
-pub use crate::crypto::scrypt_duniter_key::ScryptDuniterKey;
-pub use crate::crypto::seed_duniter_key::SeedDuniterKey;
-use crate::crypto::signable::Signable;
+use crate::dubp::signable::Signable;
+
+/// The implementations
+pub mod scrypt_duniter_key;
+pub mod seed_duniter_key;
+pub mod base58_duniter_key;
 
 pub const PUBLIC_KEY_LEN: usize = 32;
 pub const SECRET_KEY_LEN: usize = 64;
@@ -45,4 +51,4 @@ impl DuniterKey {
     pub fn verify(&self, message: &str, signature: &DuniterSignature) -> bool {
         ed25519::verify(message.as_bytes(), &self.public, &signature.as_bytes())
     }
-}
\ No newline at end of file
+}
diff --git a/src/crypto/scrypt_duniter_key.rs b/src/crypto/duniter_key/scrypt_duniter_key.rs
similarity index 100%
rename from src/crypto/scrypt_duniter_key.rs
rename to src/crypto/duniter_key/scrypt_duniter_key.rs
diff --git a/src/crypto/seed_duniter_key.rs b/src/crypto/duniter_key/seed_duniter_key.rs
similarity index 100%
rename from src/crypto/seed_duniter_key.rs
rename to src/crypto/duniter_key/seed_duniter_key.rs
diff --git a/src/crypto/mod.rs b/src/crypto/mod.rs
index 7a694a1ca90764bb5a54c6305a8bd15f6f84491a..e838147252916b52ea0d1d65b9b31b871cd853a1 100644
--- a/src/crypto/mod.rs
+++ b/src/crypto/mod.rs
@@ -2,10 +2,3 @@ mod duniter_signature;
 
 /// The API of crypto module.
 pub mod duniter_key;
-/// The implementations
-pub mod scrypt_duniter_key;
-pub mod seed_duniter_key;
-pub mod base58_duniter_key;
-
-/// Other
-pub mod signable;
diff --git a/src/dubp/documents/certification.rs b/src/dubp/documents/certification.rs
index e132dabf76b9d68e094ca3630845b4b285be6eb8..953aefeff994324da796418147b045268adedbf8 100644
--- a/src/dubp/documents/certification.rs
+++ b/src/dubp/documents/certification.rs
@@ -10,7 +10,7 @@ pub struct Certification {
     pub cert_blockstamp: String,
 }
 
-impl crate::crypto::signable::Signable for Certification {
+impl crate::dubp::signable::Signable for Certification {
     fn to_signable(self: &Self) -> String {
         format!("Version: {}
 Type: Certification
diff --git a/src/dubp/mod.rs b/src/dubp/mod.rs
index 4066f9722b0cdc83de9c2c417e2cf2248bb6d91c..a95696916a0f44f4bb7ee7c7e0e37f813657bc31 100644
--- a/src/dubp/mod.rs
+++ b/src/dubp/mod.rs
@@ -1,9 +1,11 @@
 pub mod documents;
 
+pub mod signable;
+
 #[cfg(test)]
 mod tests {
     use crate::dubp::documents::certification::Certification;
-    use crate::crypto::signable::Signable;
+    use crate::dubp::signable::Signable;
 
     #[test]
     fn test_signable_cert() {
diff --git a/src/crypto/signable.rs b/src/dubp/signable.rs
similarity index 100%
rename from src/crypto/signable.rs
rename to src/dubp/signable.rs
diff --git a/src/lib.rs b/src/lib.rs
index ea003ab19903927cec4d6964fb27db963f7e1bd6..a2327146bf9fddbdbe11629e49d519279942c96a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -22,9 +22,9 @@ mod tests {
 
     use crate::*;
     use crate::crypto::duniter_key::SeedDuniterKey;
-    use crate::crypto::base58_duniter_key::Base58DuniterKey;
-    use crate::crypto::scrypt_duniter_key::{ScryptDuniterKey};
-    use crate::crypto::signable::Signable;
+    use crate::crypto::duniter_key::base58_duniter_key::Base58DuniterKey;
+    use crate::crypto::duniter_key::scrypt_duniter_key::{ScryptDuniterKey};
+    use crate::dubp::signable::Signable;
 
     const SALT: &str = "test_salt";
     const PASSWD: &str = "test_passwd";