diff --git a/Semester 3/GenericRules/pom.xml b/Semester 3/GenericRules/pom.xml
new file mode 100644
index 0000000..a7869b2
--- /dev/null
+++ b/Semester 3/GenericRules/pom.xml
@@ -0,0 +1,15 @@
+
+
+ 4.0.0
+ edu.slcc.asdv.caleb
+ GenericRules
+ 1.0-SNAPSHOT
+ jar
+
+ UTF-8
+ 17
+ 17
+ edu.slcc.asdv.caleb.gemericrules.GemericRules
+
+ GenericRules
+
\ No newline at end of file
diff --git a/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GemericRules.java b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GemericRules.java
new file mode 100644
index 0000000..d7c2943
--- /dev/null
+++ b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GemericRules.java
@@ -0,0 +1,16 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ */
+
+package edu.slcc.asdv.caleb.gemericrules;
+
+/**
+ *
+ * @author caleb
+ */
+public class GemericRules {
+
+ public static void main(String[] args) {
+ System.out.println("Hello World!");
+ }
+}
diff --git a/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule0.java b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule0.java
new file mode 100644
index 0000000..7515265
--- /dev/null
+++ b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule0.java
@@ -0,0 +1,13 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package edu.slcc.asdv.caleb.gemericrules;
+
+/**
+ *
+ * @author caleb
+ */
+public class GenericRule0 {
+
+}
diff --git a/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule1.java b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule1.java
new file mode 100644
index 0000000..7f5a925
--- /dev/null
+++ b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule1.java
@@ -0,0 +1,20 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package edu.slcc.asdv.caleb.gemericrules;
+
+import java.util.ArrayList;
+
+/**
+ *
+ * @author caleb
+ */
+public class GenericRule1 {
+ public static void f1(ArrayList list){}
+ public static void main(String[] args)
+ {
+ /* There is no inheritence for what is inside the diamond. */
+ //f1(new ArrayList());
+ }
+}
diff --git a/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule2.java b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule2.java
new file mode 100644
index 0000000..b978b34
--- /dev/null
+++ b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule2.java
@@ -0,0 +1,21 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package edu.slcc.asdv.caleb.gemericrules;
+
+import java.util.ArrayList;
+
+/**
+ *
+ * @author caleb
+ */
+public class GenericRule2 {
+ public static void f1(ArrayList list){}
+ public static void main(String[] args)
+ {
+ /* There is inheritence for what is outside the diamond. */
+ f1(new ArrayList());
+ }
+
+}
diff --git a/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule3.java b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule3.java
new file mode 100644
index 0000000..a45563a
--- /dev/null
+++ b/Semester 3/GenericRules/src/main/java/edu/slcc/asdv/caleb/gemericrules/GenericRule3.java
@@ -0,0 +1,20 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package edu.slcc.asdv.caleb.gemericrules;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author caleb
+ */
+public class GenericRule3 {
+ public static void main(String[] args)
+ {
+ List list1 = new ArrayList();
+ ArrayList list2 = new ArrayList();
+ }
+}