diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..f06d999
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index 6143e53..719dd1d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,10 @@
# Compiled class file
+.idea/*
*.class
# Log file
*.log
-
+*.iws
# BlueJ files
*.ctxt
diff --git a/.project b/.project
new file mode 100644
index 0000000..a33e785
--- /dev/null
+++ b/.project
@@ -0,0 +1,15 @@
+
+
+ DesignPatternsJava9
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/DesignPatternsJava9.eml b/DesignPatternsJava9.eml
new file mode 100644
index 0000000..82e1875
--- /dev/null
+++ b/DesignPatternsJava9.eml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/DesignPatternsJava9.iml b/DesignPatternsJava9.iml
new file mode 100644
index 0000000..5a95221
--- /dev/null
+++ b/DesignPatternsJava9.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 9e0034c..f6a0e2b 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,21 @@
-# DesignPatternsJava9
-This repo consists Gang of Four Design patterns code on Java 9. Each branch in the repository has code of 1 design pattern. Switch repository to try out different design patterns.
+# What is memory issue / memory wastage
+Memory is one of the most critical resource of a software program and it should be used wisely.
+A memory leak reduces the performance of the computer by reducing the amount of available memory. Eventually, in the worst case, too much of the available memory may become allocated and part of the system or device stops working correctly, the application fails, or the system slows down
+
+Each design pattern is focused to solve certain problem and it might have few side effects as well. A design that worked on a small software might not work on big enterprise software.
+
+Hence, First thing is to find the primary target of the design and then pick and choose the design pattern based on issue in hand.
+
+### Learn Design Patterns with Java by Aseem Jain
+This repository contains working project code used in video Course by Packt Publication with title "Learn Design Patterns with Java " authored by "Aseem Jain".
+
+### Course link:
+https://www.packtpub.com/application-development/learn-design-patterns-java-9-video
+
+###  Profile: http://in.linkedin.com/in/premaseem
+
+### Authors blog on design patterns:
+https://premaseem.wordpress.com/category/computers/design-patterns/
+
+### Software Design pattern community face book page:
+https://www.facebook.com/DesignPatternGuru/
diff --git a/src/com/premaseem/Calculator.java b/src/com/premaseem/Calculator.java
new file mode 100644
index 0000000..f4bc469
--- /dev/null
+++ b/src/com/premaseem/Calculator.java
@@ -0,0 +1,27 @@
+package com.premaseem;
+
+/*
+@author: Aseem Jain
+@title: Design Patterns with Java 9
+@link: https://premaseem.wordpress.com/category/computers/design-patterns/
+*/
+public class Calculator {
+ static int num = 0;
+ private static Calculator instance = null;
+
+ public static Calculator getInstance(){
+ if (instance == null){
+ instance = new Calculator();
+ }
+ return instance;
+ }
+
+ private Calculator () {
+ num++;
+ System.out.println(num + " wasting memory with new object");
+ }
+
+ public Integer add (Integer sum, Integer number) {
+ return sum + number;
+ }
+}
diff --git a/src/com/premaseem/Client.java b/src/com/premaseem/Client.java
new file mode 100644
index 0000000..7767822
--- /dev/null
+++ b/src/com/premaseem/Client.java
@@ -0,0 +1,24 @@
+package com.premaseem;
+
+/*
+@author: Aseem Jain
+@title: Design Patterns with Java 9
+@link: https://premaseem.wordpress.com/category/computers/design-patterns/
+@copyright: 2018 Packt Publication
+*/
+public class Client {
+ public static void main (String[] args) {
+ System.out.println("program to add number");
+ Integer sum = calculateSum();
+ System.out.println("total of all numbers is "+ sum);
+ }
+
+ private static Integer calculateSum () {
+ Integer sum = 0;
+ for (int i =0; i< 1000; i++){
+ Calculator calc = Calculator.getInstance();
+ sum = calc.add(sum,i);
+ }
+ return sum;
+ }
+}