diff --git a/exercises/functions/functions1.rs b/exercises/functions/functions1.rs
index 3112527..1f9d4bb 100644
--- a/exercises/functions/functions1.rs
+++ b/exercises/functions/functions1.rs
@@ -1,8 +1,10 @@
 // functions1.rs
 // Make me compile! Execute `rustlings hint functions1` for hints :)
 
-// I AM NOT DONE
 
 fn main() {
     call_me();
 }
+fn call_me(){
+    println!("do that is what you want?");
+}
diff --git a/exercises/functions/functions2.rs b/exercises/functions/functions2.rs
index 108ba38..9a1eec5 100644
--- a/exercises/functions/functions2.rs
+++ b/exercises/functions/functions2.rs
@@ -1,13 +1,12 @@
 // functions2.rs
 // Make me compile! Execute `rustlings hint functions2` for hints :)
 
-// I AM NOT DONE
 
 fn main() {
     call_me(3);
 }
 
-fn call_me(num) {
+fn call_me(num : i32) {
     for i in 0..num {
         println!("Ring! Call number {}", i + 1);
     }
diff --git a/exercises/functions/functions3.rs b/exercises/functions/functions3.rs
index e3c1bf7..4196a4f 100644
--- a/exercises/functions/functions3.rs
+++ b/exercises/functions/functions3.rs
@@ -1,10 +1,9 @@
 // functions3.rs
 // Make me compile! Execute `rustlings hint functions3` for hints :)
 
-// I AM NOT DONE
 
 fn main() {
-    call_me();
+    call_me(3);
 }
 
 fn call_me(num: i32) {
diff --git a/exercises/functions/functions4.rs b/exercises/functions/functions4.rs
index 58637e4..b55a76c 100644
--- a/exercises/functions/functions4.rs
+++ b/exercises/functions/functions4.rs
@@ -4,18 +4,17 @@
 // This store is having a sale where if the price is an even number, you get
 // 10 Rustbucks off, but if it's an odd number, it's 3 Rustbucks off.
 
-// I AM NOT DONE
 
 fn main() {
-    let original_price = 51;
+    let original_price = 1;
     println!("Your sale price is {}", sale_price(original_price));
 }
 
-fn sale_price(price: i32) -> {
+fn sale_price(price: i32) -> i32{
     if is_even(price) {
-        price - 10
+        price - 10 // no semicolon means a return value
     } else {
-        price - 3
+        return price - 3; // java style is fine
     }
 }
 
diff --git a/exercises/functions/functions5.rs b/exercises/functions/functions5.rs
index d22aa6c..6869e86 100644
--- a/exercises/functions/functions5.rs
+++ b/exercises/functions/functions5.rs
@@ -1,7 +1,6 @@
 // functions5.rs
 // Make me compile! Execute `rustlings hint functions5` for hints :)
 
-// I AM NOT DONE
 
 fn main() {
     let answer = square(3);
@@ -9,5 +8,5 @@ fn main() {
 }
 
 fn square(num: i32) -> i32 {
-    num * num;
+    num * num // again semicolon should not be used in return 
 }
diff --git a/exercises/if/if1.rs b/exercises/if/if1.rs
index 9086754..59c6f98 100644
--- a/exercises/if/if1.rs
+++ b/exercises/if/if1.rs
@@ -1,6 +1,5 @@
 // if1.rs
 
-// I AM NOT DONE
 
 pub fn bigger(a: i32, b: i32) -> i32 {
     // Complete this function to return the bigger number!
@@ -8,6 +7,7 @@ pub fn bigger(a: i32, b: i32) -> i32 {
     // - another function call
     // - additional variables
     // Execute `rustlings hint if1` for hints
+    return if a > b {a} else {b}
 }
 
 // Don't mind this for now :)
diff --git a/exercises/test1.rs b/exercises/test1.rs
index 8b5b8fd..0853173 100644
--- a/exercises/test1.rs
+++ b/exercises/test1.rs
@@ -7,7 +7,6 @@
 // more than 40 at once, each apple only costs 1! Write a function that calculates
 // the price of an order of apples given the order amount. No hints this time!
 
-// I AM NOT DONE
 
 // Put your function here!
 // fn ..... {
@@ -21,3 +20,6 @@ fn verify_test() {
     assert_eq!(70, price1);
     assert_eq!(65, price2);
 }
+fn calculate_apple_price(number : i32) -> i32{
+    if number > 40 {number * 1} else {number * 2}
+}
diff --git a/exercises/variables/variables1.rs b/exercises/variables/variables1.rs
index 4a3af73..149d5ce 100644
--- a/exercises/variables/variables1.rs
+++ b/exercises/variables/variables1.rs
@@ -6,9 +6,8 @@
 // even after you already figured it out. If you got everything working and
 // feel ready for the next exercise, remove the `I AM NOT DONE` comment below.
 
-// I AM NOT DONE
 
 fn main() {
-    x = 5;
+    let x = 5;
     println!("x has the value {}", x);
 }
diff --git a/exercises/variables/variables2.rs b/exercises/variables/variables2.rs
index 7774a8f..be2ca14 100644
--- a/exercises/variables/variables2.rs
+++ b/exercises/variables/variables2.rs
@@ -1,10 +1,9 @@
 // variables2.rs
 // Make me compile! Execute the command `rustlings hint variables2` if you want a hint :)
 
-// I AM NOT DONE
 
 fn main() {
-    let x;
+    let x = 10;
     if x == 10 {
         println!("Ten!");
     } else {
diff --git a/exercises/variables/variables3.rs b/exercises/variables/variables3.rs
index 07b1a52..6b0f483 100644
--- a/exercises/variables/variables3.rs
+++ b/exercises/variables/variables3.rs
@@ -1,11 +1,10 @@
 // variables3.rs
 // Make me compile! Execute the command `rustlings hint variables3` if you want a hint :)
 
-// I AM NOT DONE
 
 fn main() {
     let x = 3;
     println!("Number {}", x);
-    x = 5;
+    let x = 5; // shadowing
     println!("Number {}", x);
 }
diff --git a/exercises/variables/variables4.rs b/exercises/variables/variables4.rs
index 77f1e9a..64b261a 100644
--- a/exercises/variables/variables4.rs
+++ b/exercises/variables/variables4.rs
@@ -1,9 +1,8 @@
 // variables4.rs
 // Make me compile! Execute the command `rustlings hint variables4` if you want a hint :)
 
-// I AM NOT DONE
 
 fn main() {
-    let x: i32;
+    let x: i32 = 0;// initilization is mandatory for compiler
     println!("Number {}", x);
 }
diff --git a/exercises/variables/variables5.rs b/exercises/variables/variables5.rs
index 47a68a5..3b645fc 100644
--- a/exercises/variables/variables5.rs
+++ b/exercises/variables/variables5.rs
@@ -1,11 +1,9 @@
 // variables5.rs
 // Make me compile! Execute the command `rustlings hint variables5` if you want a hint :)
 
-// I AM NOT DONE
-
 fn main() {
-    let number = "3";
+    let number = "3"; // shadowing can init val with diff type
     println!("Number {}", number);
-    number = 3;
+    let number = 3;
     println!("Number {}", number);
 }
diff --git a/temp_11118 b/temp_11118
new file mode 100644
index 0000000..e69de29
diff --git a/temp_11118.2sdmqtm61l4rd3r2.rcgu.o b/temp_11118.2sdmqtm61l4rd3r2.rcgu.o
new file mode 100644
index 0000000..5009bbf
Binary files /dev/null and b/temp_11118.2sdmqtm61l4rd3r2.rcgu.o differ
diff --git a/temp_11118.variables4.7rcbfp3g-cgu.0.rcgu.o b/temp_11118.variables4.7rcbfp3g-cgu.0.rcgu.o
new file mode 100644
index 0000000..c856ae6
Binary files /dev/null and b/temp_11118.variables4.7rcbfp3g-cgu.0.rcgu.o differ
diff --git a/temp_11118.variables4.7rcbfp3g-cgu.1.rcgu.o b/temp_11118.variables4.7rcbfp3g-cgu.1.rcgu.o
new file mode 100644
index 0000000..d625626
Binary files /dev/null and b/temp_11118.variables4.7rcbfp3g-cgu.1.rcgu.o differ
diff --git a/temp_11118.variables4.7rcbfp3g-cgu.2.rcgu.o b/temp_11118.variables4.7rcbfp3g-cgu.2.rcgu.o
new file mode 100644
index 0000000..647dcc0
Binary files /dev/null and b/temp_11118.variables4.7rcbfp3g-cgu.2.rcgu.o differ
diff --git a/temp_11118.variables4.7rcbfp3g-cgu.3.rcgu.o b/temp_11118.variables4.7rcbfp3g-cgu.3.rcgu.o
new file mode 100644
index 0000000..473f7b0
Binary files /dev/null and b/temp_11118.variables4.7rcbfp3g-cgu.3.rcgu.o differ
diff --git a/temp_11118.variables4.7rcbfp3g-cgu.4.rcgu.o b/temp_11118.variables4.7rcbfp3g-cgu.4.rcgu.o
new file mode 100644
index 0000000..7072cd3
Binary files /dev/null and b/temp_11118.variables4.7rcbfp3g-cgu.4.rcgu.o differ
diff --git a/temp_11118.variables4.7rcbfp3g-cgu.5.rcgu.o b/temp_11118.variables4.7rcbfp3g-cgu.5.rcgu.o
new file mode 100644
index 0000000..aa7133c
Binary files /dev/null and b/temp_11118.variables4.7rcbfp3g-cgu.5.rcgu.o differ
diff --git a/temp_13591.34m0fptr6ktrfuzi.rcgu.o b/temp_13591.34m0fptr6ktrfuzi.rcgu.o
new file mode 100644
index 0000000..99f2011
Binary files /dev/null and b/temp_13591.34m0fptr6ktrfuzi.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.0.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.0.rcgu.o
new file mode 100644
index 0000000..c8f1e99
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.0.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.1.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.1.rcgu.o
new file mode 100644
index 0000000..0d318e4
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.1.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.10.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.10.rcgu.o
new file mode 100644
index 0000000..5550a59
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.10.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.11.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.11.rcgu.o
new file mode 100644
index 0000000..3209723
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.11.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.12.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.12.rcgu.o
new file mode 100644
index 0000000..6b4d338
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.12.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.13.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.13.rcgu.o
new file mode 100644
index 0000000..19b3e4b
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.13.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.14.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.14.rcgu.o
new file mode 100644
index 0000000..b81b283
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.14.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.2.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.2.rcgu.o
new file mode 100644
index 0000000..33cc3bb
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.2.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.3.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.3.rcgu.o
new file mode 100644
index 0000000..c2d4e5b
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.3.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.4.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.4.rcgu.o
new file mode 100644
index 0000000..f48cad8
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.4.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.5.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.5.rcgu.o
new file mode 100644
index 0000000..8d148bb
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.5.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.6.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.6.rcgu.o
new file mode 100644
index 0000000..50728f4
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.6.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.7.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.7.rcgu.o
new file mode 100644
index 0000000..596b210
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.7.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.8.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.8.rcgu.o
new file mode 100644
index 0000000..21dce4b
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.8.rcgu.o differ
diff --git a/temp_13591.functions2.7rcbfp3g-cgu.9.rcgu.o b/temp_13591.functions2.7rcbfp3g-cgu.9.rcgu.o
new file mode 100644
index 0000000..172962a
Binary files /dev/null and b/temp_13591.functions2.7rcbfp3g-cgu.9.rcgu.o differ