diff --git a/.gitignore b/.gitignore
index ad1211e..103401f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,5 @@ Existing
hs_err_pid*
# End of https://www.gitignore.io/api/java
+
+target/
diff --git a/code-samples/03-Design-Patterns/01-singleton/pom.xml b/code-samples/03-Design-Patterns/01-singleton/pom.xml
new file mode 100644
index 0000000..22e612c
--- /dev/null
+++ b/code-samples/03-Design-Patterns/01-singleton/pom.xml
@@ -0,0 +1,75 @@
+
+
+
+ 4.0.0
+
+ com.algogrit.java
+ singleton
+ 1.0-SNAPSHOT
+
+ singleton
+
+ http://www.example.com
+
+
+ UTF-8
+ 1.7
+ 1.7
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+
+
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
+
+
+
diff --git a/code-samples/03-Design-Patterns/01-singleton/src/main/java/com/algogrit/java/App.java b/code-samples/03-Design-Patterns/01-singleton/src/main/java/com/algogrit/java/App.java
new file mode 100644
index 0000000..bc14035
--- /dev/null
+++ b/code-samples/03-Design-Patterns/01-singleton/src/main/java/com/algogrit/java/App.java
@@ -0,0 +1,27 @@
+package com.algogrit.java;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ // printerDriver.print("Hello World!");
+
+ System.out.println("Creating instance...");
+ PrinterDriver printerDriver1 = PrinterDriver.getInstance();
+
+ System.out.println("Fetching instance...");
+ PrinterDriver printerDriver2 = PrinterDriver.getInstance();
+
+ // ThreadSafeLazyLoadedIvoryTower ivoryTower = new ThreadSafeLazyLoadedIvoryTower();
+
+ // printerDriver.print("Hello World!");
+
+ System.out.println(PrinterDriver.class);
+
+ System.out.println("Hello world!");
+ }
+}
diff --git a/code-samples/03-Design-Patterns/01-singleton/src/main/java/com/algogrit/java/PrinterDriver.java b/code-samples/03-Design-Patterns/01-singleton/src/main/java/com/algogrit/java/PrinterDriver.java
new file mode 100644
index 0000000..04ff2e5
--- /dev/null
+++ b/code-samples/03-Design-Patterns/01-singleton/src/main/java/com/algogrit/java/PrinterDriver.java
@@ -0,0 +1,27 @@
+package com.algogrit.java;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PrinterDriver {
+ private List