diff --git a/exercises/error_handling/result1.rs b/exercises/error_handling/result1.rs
index b978001..deb24d9 100644
--- a/exercises/error_handling/result1.rs
+++ b/exercises/error_handling/result1.rs
@@ -1,8 +1,6 @@
 // result1.rs
 // Make this test pass! Execute `rustlings hint result1` for hints :)
 
-// I AM NOT DONE
-
 #[derive(PartialEq, Debug)]
 struct PositiveNonzeroInteger(u64);
 
@@ -14,6 +12,11 @@ enum CreationError {
 
 impl PositiveNonzeroInteger {
     fn new(value: i64) -> Result<PositiveNonzeroInteger, CreationError> {
+        if value == 0 {
+            return Err(CreationError::Zero);
+        }else if value < 0 {
+            return Err(CreationError::Negative);
+        }
         Ok(PositiveNonzeroInteger(value as u64))
     }
 }