diff --git a/exercises/structs/structs1.rs b/exercises/structs/structs1.rs
index 870236d..f492aef 100644
--- a/exercises/structs/structs1.rs
+++ b/exercises/structs/structs1.rs
@@ -1,11 +1,12 @@
 // structs1.rs
 // Address all the TODOs to make the tests pass!
 
-struct ColorClassicStruct {
-    // TODO: Something goes here
+struct ColorClassicStruct<'a> {
+    name: &'a str,
+    hex: &'a str,
 }
 
-struct ColorTupleStruct(/* TODO: Something goes here */);
+struct ColorTupleStruct<'a>(&'a str, &'a str);
 
 #[derive(Debug)]
 struct UnitStruct;
@@ -16,8 +17,9 @@ mod tests {
 
     #[test]
     fn classic_c_structs() {
-        // TODO: Instantiate a classic c struct!
-        // let green =
+        let name = "green";
+        let hex = "#00FF00";
+        let green = ColorClassicStruct { name, hex };
 
         assert_eq!(green.name, "green");
         assert_eq!(green.hex, "#00FF00");
@@ -25,18 +27,17 @@ mod tests {
 
     #[test]
     fn tuple_structs() {
-        // TODO: Instantiate a tuple struct!
+        let name = "green";
+        let hex = "#00FF00";
+        let green = ColorTupleStruct(name, hex);
         // For more fun, use the field initialization shorthand.
-        // let green =
-
         assert_eq!(green.0, "green");
         assert_eq!(green.1, "#00FF00");
     }
 
     #[test]
     fn unit_structs() {
-        // TODO: Instantiate a unit struct!
-        // let unit_struct =
+        let unit_struct = UnitStruct;
         let message = format!("{:?}s are fun!", unit_struct);
 
         assert_eq!(message, "UnitStructs are fun!");