diff --git a/exercises/macros/macros1.rs b/exercises/macros/macros1.rs
index ed0dac8..931e270 100644
--- a/exercises/macros/macros1.rs
+++ b/exercises/macros/macros1.rs
@@ -1,8 +1,8 @@
 // macros1.rs
 // Make me compile! Execute `rustlings hint macros1` for hints :)
 
-// I AM NOT DONE
-
+// I am a rooky in metaprogramming
+// strongly recommend to read and practice on https://danielkeep.github.io/tlborm/book/README.html
 macro_rules! my_macro {
     () => {
         println!("Check out my macro!");
@@ -10,5 +10,5 @@ macro_rules! my_macro {
 }
 
 fn main() {
-    my_macro();
+    my_macro!();
 }
diff --git a/exercises/macros/macros2.rs b/exercises/macros/macros2.rs
index d0be123..a7ea656 100644
--- a/exercises/macros/macros2.rs
+++ b/exercises/macros/macros2.rs
@@ -1,12 +1,11 @@
 // macros2.rs
 // Make me compile! Execute `rustlings hint macros2` for hints :)
 
-// I AM NOT DONE
 
 fn main() {
     my_macro!();
 }
-
+#[macro_export]
 macro_rules! my_macro {
     () => {
         println!("Check out my macro!");
diff --git a/exercises/macros/macros3.rs b/exercises/macros/macros3.rs
index 93a4311..3921fe5 100644
--- a/exercises/macros/macros3.rs
+++ b/exercises/macros/macros3.rs
@@ -2,9 +2,9 @@
 // Make me compile, without taking the macro out of the module!
 // Execute `rustlings hint macros3` for hints :)
 
-// I AM NOT DONE
-
+//export works even with no pub mod 
 mod macros {
+    #[macro_export]
     macro_rules! my_macro {
         () => {
             println!("Check out my macro!");
diff --git a/exercises/macros/macros4.rs b/exercises/macros/macros4.rs
index 3a74807..92f7027 100644
--- a/exercises/macros/macros4.rs
+++ b/exercises/macros/macros4.rs
@@ -1,15 +1,14 @@
 // macros4.rs
 // Make me compile! Execute `rustlings hint macros4` for hints :)
 
-// I AM NOT DONE
 
 macro_rules! my_macro {
     () => {
         println!("Check out my macro!");
-    }
+    };
     ($val:expr) => {
         println!("Look at this other macro: {}", $val);
-    }
+    };
 }
 
 fn main() {
diff --git a/exercises/modules/modules1.rs b/exercises/modules/modules1.rs
index 812dfee..f0c8b0f 100644
--- a/exercises/modules/modules1.rs
+++ b/exercises/modules/modules1.rs
@@ -1,10 +1,9 @@
 // modules1.rs
 // Make me compile! Execute `rustlings hint modules1` for hints :)
 
-// I AM NOT DONE
 
-mod sausage_factory {
-    fn make_sausage() {
+pub mod sausage_factory {
+    pub fn make_sausage() {
         println!("sausage!");
     }
 }
diff --git a/exercises/modules/modules2.rs b/exercises/modules/modules2.rs
index fde439d..b11c8c4 100644
--- a/exercises/modules/modules2.rs
+++ b/exercises/modules/modules2.rs
@@ -1,11 +1,10 @@
 // modules2.rs
 // Make me compile! Execute `rustlings hint modules2` for hints :)
 
-// I AM NOT DONE
 
-mod delicious_snacks {
-    use self::fruits::PEAR as fruit;
-    use self::veggies::CUCUMBER as veggie;
+pub mod delicious_snacks {
+    pub use self::fruits::PEAR as fruit;
+    pub use self::veggies::CUCUMBER as veggie;
 
     mod fruits {
         pub const PEAR: &'static str = "Pear";
diff --git a/exercises/test4.rs b/exercises/test4.rs
index ad1f6ac..533da39 100644
--- a/exercises/test4.rs
+++ b/exercises/test4.rs
@@ -5,7 +5,9 @@
 
 // Write a macro that passes the test! No hints this time, you can do it!
 
-// I AM NOT DONE
+macro_rules! my_macro {
+    ($str: expr) => {format!("Hello {}", $str)};
+}
 
 #[cfg(test)]
 mod tests {