diff --git a/core-java-modules/core-java-lang-oop-2/README.md b/core-java-modules/core-java-lang-oop-2/README.md
index fc5b5944f8..d482b0a78d 100644
--- a/core-java-modules/core-java-lang-oop-2/README.md
+++ b/core-java-modules/core-java-lang-oop-2/README.md
@@ -8,8 +8,6 @@ This module contains articles about Object-oriented programming (OOP) in Java
- [Raw Types in Java](https://www.baeldung.com/raw-types-java)
- [Marker Interfaces in Java](https://www.baeldung.com/java-marker-interfaces)
- [Java equals() and hashCode() Contracts](https://www.baeldung.com/java-equals-hashcode-contracts)
-- [Immutable Objects in Java](https://www.baeldung.com/java-immutable-object)
-- [Inheritance and Composition (Is-a vs Has-a relationship) in Java](https://www.baeldung.com/java-inheritance-composition)
- [Static and Default Methods in Interfaces in Java](https://www.baeldung.com/java-static-default-methods)
- [Abstract Classes in Java](https://www.baeldung.com/java-abstract-class)
- [[<-- Prev]](/core-java-modules/core-java-lang-oop)[[More -->]](/core-java-modules/core-java-lang-oop-3)
diff --git a/core-java-modules/core-java-lang-oop-3/README.md b/core-java-modules/core-java-lang-oop-3/README.md
index 3a0e588ad4..78725b0f02 100644
--- a/core-java-modules/core-java-lang-oop-3/README.md
+++ b/core-java-modules/core-java-lang-oop-3/README.md
@@ -8,7 +8,6 @@ This module contains articles about Object-oriented programming (OOP) in Java
- [Guide to the super Java Keyword](https://www.baeldung.com/java-super)
- [Guide to the this Java Keyword](https://www.baeldung.com/java-this)
- [Java ‘public’ Access Modifier](https://www.baeldung.com/java-public-keyword)
-- [Composition, Aggregation, and Association in Java](https://www.baeldung.com/java-composition-aggregation-association)
- [Nested Classes in Java](https://www.baeldung.com/java-nested-classes)
- [A Guide to Inner Interfaces in Java](https://www.baeldung.com/java-inner-interfaces)
- [Java Classes and Objects](https://www.baeldung.com/java-classes-objects)
diff --git a/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/README.md b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/README.md
new file mode 100644
index 0000000000..178a556a96
--- /dev/null
+++ b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/README.md
@@ -0,0 +1,9 @@
+## Core Java Lang OOP - Patterns
+
+This module contains articles about Object-oriented programming (OOP) patterns in Java
+
+### Relevant Articles:
+- [Composition, Aggregation, and Association in Java](https://www.baeldung.com/java-composition-aggregation-association)
+- [Inheritance and Composition (Is-a vs Has-a relationship) in Java](https://www.baeldung.com/java-inheritance-composition)
+- [Immutable Objects in Java](https://www.baeldung.com/java-immutable-object)
+- [How to Make a Deep Copy of an Object in Java](https://www.baeldung.com/java-deep-copy)
diff --git a/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/pom.xml b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/pom.xml
new file mode 100644
index 0000000000..5bd3c70542
--- /dev/null
+++ b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/pom.xml
@@ -0,0 +1,45 @@
+
+
+
+ core-java-lang-oop-modules
+ com.baeldung.core-java-lang-oop-modules
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ core-java-lang-oop-patterns
+ core-java-lang-oop-patterns
+ jar
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.version}
+
+
+ com.google.code.gson
+ gson
+ ${gson.version}
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj-core.version}
+ test
+
+
+
+
+ 2.8.2
+ 3.10.0
+
+
\ No newline at end of file
diff --git a/core-java-modules/core-java-lang-oop/src/main/java/com/baeldung/deepcopy/Address.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/deepcopy/Address.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop/src/main/java/com/baeldung/deepcopy/Address.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/deepcopy/Address.java
diff --git a/core-java-modules/core-java-lang-oop/src/main/java/com/baeldung/deepcopy/User.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/deepcopy/User.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop/src/main/java/com/baeldung/deepcopy/User.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/deepcopy/User.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/immutableobjects/Currency.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/immutableobjects/Currency.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/immutableobjects/Currency.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/immutableobjects/Currency.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/immutableobjects/Money.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/immutableobjects/Money.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/immutableobjects/Money.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/immutableobjects/Money.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/application/Application.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Person.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/aggregation/Car.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/aggregation/Car.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/aggregation/Car.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/aggregation/Car.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/aggregation/CarWithStaticInnerWheel.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/aggregation/CarWithStaticInnerWheel.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/aggregation/CarWithStaticInnerWheel.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/aggregation/CarWithStaticInnerWheel.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/aggregation/Wheel.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/aggregation/Wheel.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/aggregation/Wheel.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/aggregation/Wheel.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/association/Child.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/association/Child.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/association/Child.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/association/Child.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/association/Mother.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/association/Mother.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/association/Mother.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/association/Mother.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/composition/Building.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/composition/Building.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/composition/Building.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/composition/Building.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/composition/BuildingWithDefinitionRoomInMethod.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/composition/BuildingWithDefinitionRoomInMethod.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/composition/BuildingWithDefinitionRoomInMethod.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/composition/BuildingWithDefinitionRoomInMethod.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/university/Department.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/university/Department.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/university/Department.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/university/Department.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/university/Professor.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/university/Professor.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/university/Professor.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/university/Professor.java
diff --git a/core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/university/University.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/university/University.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-3/src/main/java/com/baeldung/relationships/university/University.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/relationships/university/University.java
diff --git a/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
diff --git a/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/immutableobjects/ImmutableObjectsUnitTest.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/immutableobjects/ImmutableObjectsUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/immutableobjects/ImmutableObjectsUnitTest.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/immutableobjects/ImmutableObjectsUnitTest.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/ActressUnitTest.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/ActressUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/ActressUnitTest.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/ActressUnitTest.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/CompositionUnitTest.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/CompositionUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/CompositionUnitTest.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/CompositionUnitTest.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/InheritanceUnitTest.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/InheritanceUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/InheritanceUnitTest.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/InheritanceUnitTest.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/PersonUnitTest.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/PersonUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/PersonUnitTest.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/PersonUnitTest.java
diff --git a/core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/WaitressUnitTest.java b/core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/WaitressUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/inheritancecomposition/WaitressUnitTest.java
rename to core-java-modules/core-java-lang-oop-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/inheritancecomposition/WaitressUnitTest.java
diff --git a/core-java-modules/core-java-lang-oop-modules/pom.xml b/core-java-modules/core-java-lang-oop-modules/pom.xml
index c8bad11b13..ad86c1ef3c 100644
--- a/core-java-modules/core-java-lang-oop-modules/pom.xml
+++ b/core-java-modules/core-java-lang-oop-modules/pom.xml
@@ -16,5 +16,6 @@
core-java-lang-oop-constructors
+ core-java-lang-oop-patterns
\ No newline at end of file