diff --git a/core-java-lang-oop/.gitignore b/core-java-lang-oop/.gitignore
new file mode 100644
index 0000000000..3de4cc647e
--- /dev/null
+++ b/core-java-lang-oop/.gitignore
@@ -0,0 +1,26 @@
+*.class
+
+0.*
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+.resourceCache
+
+# Packaged files #
+*.jar
+*.war
+*.ear
+
+# Files generated by integration tests
+*.txt
+backup-pom.xml
+/bin/
+/temp
+
+#IntelliJ specific
+.idea/
+*.iml
\ No newline at end of file
diff --git a/core-java-lang-oop/README.md b/core-java-lang-oop/README.md
new file mode 100644
index 0000000000..665178452c
--- /dev/null
+++ b/core-java-lang-oop/README.md
@@ -0,0 +1,23 @@
+=========
+
+## Core Java Lang OOP Cookbooks and Examples
+
+### Relevant Articles:
+- [Guide to hashCode() in Java](http://www.baeldung.com/java-hashcode)
+- [A Guide to the Static Keyword in Java](http://www.baeldung.com/java-static)
+- [A Guide to Java Initialization](http://www.baeldung.com/java-initialization)
+- [Polymorphism in Java](http://www.baeldung.com/java-polymorphism)
+- [Method Overloading and Overriding in Java](http://www.baeldung.com/java-method-overload-override)
+- [How to Make a Deep Copy of an Object in Java](http://www.baeldung.com/java-deep-copy)
+- [Guide to Inheritance in Java](http://www.baeldung.com/java-inheritance)
+- [Object Type Casting in Java](http://www.baeldung.com/java-type-casting)
+- [The "final" Keyword in Java](http://www.baeldung.com/java-final)
+- [Type Erasure in Java Explained](http://www.baeldung.com/java-type-erasure)
+- [Pass-By-Value as a Parameter Passing Mechanism in Java](http://www.baeldung.com/java-pass-by-value-or-pass-by-reference)
+- [Variable and Method Hiding in Java](http://www.baeldung.com/java-variable-method-hiding)
+- [Access Modifiers in Java](http://www.baeldung.com/java-access-modifiers)
+- [Guide to the super Java Keyword](http://www.baeldung.com/java-super)
+- [Guide to the this Java Keyword](http://www.baeldung.com/java-this)
+- [Immutable Objects in Java](http://www.baeldung.com/java-immutable-object)
+- [Inheritance and Composition (Is-a vs Has-a relationship) in Java](http://www.baeldung.com/java-inheritance-composition)
+- [A Guide to Constructors in Java](https://www.baeldung.com/java-constructors)
\ No newline at end of file
diff --git a/core-java-lang-oop/pom.xml b/core-java-lang-oop/pom.xml
new file mode 100644
index 0000000000..262408c024
--- /dev/null
+++ b/core-java-lang-oop/pom.xml
@@ -0,0 +1,91 @@
+
+ 4.0.0
+ com.baeldung
+ core-java-lang-oop
+ 0.1.0-SNAPSHOT
+ jar
+ core-java-lang-oop
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../parent-java
+
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.version}
+
+
+ com.google.code.gson
+ gson
+ ${gson.version}
+
+
+
+ log4j
+ log4j
+ ${log4j.version}
+
+
+ org.slf4j
+ log4j-over-slf4j
+ ${org.slf4j.version}
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+ provided
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj-core.version}
+ test
+
+
+ nl.jqno.equalsverifier
+ equalsverifier
+ ${equalsverifier.version}
+ test
+
+
+
+
+ core-java-lang-oop
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+
+ 2.8.5
+ 2.8.2
+
+
+ 3.5
+ 1.16.12
+
+ 3.10.0
+ 3.0.3
+
+
+
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/Public.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/Public.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/Public.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/Public.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/SubClass.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/SubClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/SubClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/SubClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/Animal.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/Animal.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/Animal.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/Animal.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/AnimalFeeder.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/AnimalFeeder.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/AnimalFeeder.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/AnimalFeeder.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/Cat.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/Cat.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/Cat.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/Cat.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/Dog.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/Dog.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/Dog.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/Dog.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/Mew.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/Mew.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/Mew.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/Mew.java
diff --git a/core-java-lang/src/main/java/com/baeldung/constructors/BankAccount.java b/core-java-lang-oop/src/main/java/com/baeldung/constructors/BankAccount.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/constructors/BankAccount.java
rename to core-java-lang-oop/src/main/java/com/baeldung/constructors/BankAccount.java
diff --git a/core-java-lang/src/main/java/com/baeldung/constructors/Transaction.java b/core-java-lang-oop/src/main/java/com/baeldung/constructors/Transaction.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/constructors/Transaction.java
rename to core-java-lang-oop/src/main/java/com/baeldung/constructors/Transaction.java
diff --git a/core-java-lang/src/main/java/com/baeldung/deepcopy/Address.java b/core-java-lang-oop/src/main/java/com/baeldung/deepcopy/Address.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/deepcopy/Address.java
rename to core-java-lang-oop/src/main/java/com/baeldung/deepcopy/Address.java
diff --git a/core-java-lang/src/main/java/com/baeldung/deepcopy/User.java b/core-java-lang-oop/src/main/java/com/baeldung/deepcopy/User.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/deepcopy/User.java
rename to core-java-lang-oop/src/main/java/com/baeldung/deepcopy/User.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/Money.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Money.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/Money.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Money.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/Team.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Team.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/Team.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Team.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/Voucher.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Voucher.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/Voucher.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Voucher.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/WrongTeam.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/WrongTeam.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/WrongTeam.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/WrongTeam.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/WrongVoucher.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/WrongVoucher.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/WrongVoucher.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/WrongVoucher.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Shape.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Shape.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Shape.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Shape.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Square.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Square.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Square.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Square.java
diff --git a/core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackCat.java b/core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/BlackCat.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackCat.java
rename to core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/BlackCat.java
diff --git a/core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackDog.java b/core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/BlackDog.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackDog.java
rename to core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/BlackDog.java
diff --git a/core-java-lang/src/main/java/com/baeldung/finalkeyword/Cat.java b/core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/Cat.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/finalkeyword/Cat.java
rename to core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/Cat.java
diff --git a/core-java-lang/src/main/java/com/baeldung/finalkeyword/Dog.java b/core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/Dog.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/finalkeyword/Dog.java
rename to core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/Dog.java
diff --git a/core-java-lang/src/main/java/com/baeldung/hashcode/entities/User.java b/core-java-lang-oop/src/main/java/com/baeldung/hashcode/entities/User.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/hashcode/entities/User.java
rename to core-java-lang-oop/src/main/java/com/baeldung/hashcode/entities/User.java
diff --git a/core-java-lang/src/main/java/com/baeldung/immutableobjects/Currency.java b/core-java-lang-oop/src/main/java/com/baeldung/immutableobjects/Currency.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/immutableobjects/Currency.java
rename to core-java-lang-oop/src/main/java/com/baeldung/immutableobjects/Currency.java
diff --git a/core-java-lang/src/main/java/com/baeldung/immutableobjects/Money.java b/core-java-lang-oop/src/main/java/com/baeldung/immutableobjects/Money.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/immutableobjects/Money.java
rename to core-java-lang-oop/src/main/java/com/baeldung/immutableobjects/Money.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/ArmoredCar.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/ArmoredCar.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/ArmoredCar.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/ArmoredCar.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/BMW.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/BMW.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/BMW.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/BMW.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/Car.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/Car.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/Car.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/Car.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/Employee.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/Employee.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/Employee.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/Employee.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/Floatable.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/Floatable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/Floatable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/Floatable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/Flyable.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/Flyable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/Flyable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/Flyable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/SpaceCar.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/SpaceCar.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/SpaceCar.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/SpaceCar.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/SpaceTraveller.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/SpaceTraveller.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/SpaceTraveller.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/SpaceTraveller.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/application/Application.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Person.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
diff --git a/core-java-lang/src/main/java/com/baeldung/initializationguide/User.java b/core-java-lang-oop/src/main/java/com/baeldung/initializationguide/User.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/initializationguide/User.java
rename to core-java-lang-oop/src/main/java/com/baeldung/initializationguide/User.java
diff --git a/core-java-lang/src/main/java/com/baeldung/keyword/KeywordDemo.java b/core-java-lang-oop/src/main/java/com/baeldung/keyword/KeywordDemo.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/keyword/KeywordDemo.java
rename to core-java-lang-oop/src/main/java/com/baeldung/keyword/KeywordDemo.java
diff --git a/core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java b/core-java-lang-oop/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java
rename to core-java-lang-oop/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java
diff --git a/core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java b/core-java-lang-oop/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java
rename to core-java-lang-oop/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java
diff --git a/core-java-lang/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java b/core-java-lang-oop/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java
rename to core-java-lang-oop/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java
diff --git a/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java b/core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java
rename to core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java
diff --git a/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java b/core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java
rename to core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java
diff --git a/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java b/core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java
rename to core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java
diff --git a/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java b/core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java
rename to core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java
diff --git a/core-java-lang/src/main/java/com/baeldung/polymorphism/FileManager.java b/core-java-lang-oop/src/main/java/com/baeldung/polymorphism/FileManager.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/polymorphism/FileManager.java
rename to core-java-lang-oop/src/main/java/com/baeldung/polymorphism/FileManager.java
diff --git a/core-java-lang/src/main/java/com/baeldung/polymorphism/GenericFile.java b/core-java-lang-oop/src/main/java/com/baeldung/polymorphism/GenericFile.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/polymorphism/GenericFile.java
rename to core-java-lang-oop/src/main/java/com/baeldung/polymorphism/GenericFile.java
diff --git a/core-java-lang/src/main/java/com/baeldung/polymorphism/ImageFile.java b/core-java-lang-oop/src/main/java/com/baeldung/polymorphism/ImageFile.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/polymorphism/ImageFile.java
rename to core-java-lang-oop/src/main/java/com/baeldung/polymorphism/ImageFile.java
diff --git a/core-java-lang/src/main/java/com/baeldung/polymorphism/TextFile.java b/core-java-lang-oop/src/main/java/com/baeldung/polymorphism/TextFile.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/polymorphism/TextFile.java
rename to core-java-lang-oop/src/main/java/com/baeldung/polymorphism/TextFile.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/method/BaseMethodClass.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/method/BaseMethodClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/method/BaseMethodClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/method/BaseMethodClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/method/ChildMethodClass.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/method/ChildMethodClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/method/ChildMethodClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/method/ChildMethodClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/variable/ChildVariable.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/variable/ChildVariable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/variable/ChildVariable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/variable/ChildVariable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/variable/HideVariable.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/variable/HideVariable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/variable/HideVariable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/variable/HideVariable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/variable/ParentVariable.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/variable/ParentVariable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/variable/ParentVariable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/variable/ParentVariable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java
diff --git a/core-java-lang/src/main/java/com/baeldung/staticdemo/Car.java b/core-java-lang-oop/src/main/java/com/baeldung/staticdemo/Car.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/staticdemo/Car.java
rename to core-java-lang-oop/src/main/java/com/baeldung/staticdemo/Car.java
diff --git a/core-java-lang/src/main/java/com/baeldung/staticdemo/Singleton.java b/core-java-lang-oop/src/main/java/com/baeldung/staticdemo/Singleton.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/staticdemo/Singleton.java
rename to core-java-lang-oop/src/main/java/com/baeldung/staticdemo/Singleton.java
diff --git a/core-java-lang/src/main/java/com/baeldung/staticdemo/StaticBlock.java b/core-java-lang-oop/src/main/java/com/baeldung/staticdemo/StaticBlock.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/staticdemo/StaticBlock.java
rename to core-java-lang-oop/src/main/java/com/baeldung/staticdemo/StaticBlock.java
diff --git a/core-java-lang/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java b/core-java-lang-oop/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java
rename to core-java-lang-oop/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java
diff --git a/core-java-lang/src/main/java/com/baeldung/typeerasure/BoundStack.java b/core-java-lang-oop/src/main/java/com/baeldung/typeerasure/BoundStack.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/typeerasure/BoundStack.java
rename to core-java-lang-oop/src/main/java/com/baeldung/typeerasure/BoundStack.java
diff --git a/core-java-lang/src/main/java/com/baeldung/typeerasure/IntegerStack.java b/core-java-lang-oop/src/main/java/com/baeldung/typeerasure/IntegerStack.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/typeerasure/IntegerStack.java
rename to core-java-lang-oop/src/main/java/com/baeldung/typeerasure/IntegerStack.java
diff --git a/core-java-lang/src/main/java/com/baeldung/typeerasure/Stack.java b/core-java-lang-oop/src/main/java/com/baeldung/typeerasure/Stack.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/typeerasure/Stack.java
rename to core-java-lang-oop/src/main/java/com/baeldung/typeerasure/Stack.java
diff --git a/core-java-lang-oop/src/main/resources/logback.xml b/core-java-lang-oop/src/main/resources/logback.xml
new file mode 100644
index 0000000000..56af2d397e
--- /dev/null
+++ b/core-java-lang-oop/src/main/resources/logback.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core-java-lang/src/test/java/com/baeldung/casting/CastingUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/casting/CastingUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/casting/CastingUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/casting/CastingUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/TeamUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/TeamUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/TeamUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/TeamUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritance/AppUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritance/AppUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritance/AppUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritance/AppUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/initializationguide/UserUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/initializationguide/UserUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/initializationguide/UserUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/initializationguide/UserUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java b/core-java-lang-oop/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java b/core-java-lang-oop/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java b/core-java-lang-oop/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java
diff --git a/core-java-lang-oop/src/test/resources/.gitignore b/core-java-lang-oop/src/test/resources/.gitignore
new file mode 100644
index 0000000000..83c05e60c8
--- /dev/null
+++ b/core-java-lang-oop/src/test/resources/.gitignore
@@ -0,0 +1,13 @@
+*.class
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+
+# Packaged files #
+*.jar
+*.war
+*.ear
\ No newline at end of file
diff --git a/core-java-lang/README.md b/core-java-lang/README.md
index 69209bb193..56de6d2e82 100644
--- a/core-java-lang/README.md
+++ b/core-java-lang/README.md
@@ -13,35 +13,19 @@
- [Changing Annotation Parameters At Runtime](http://www.baeldung.com/java-reflection-change-annotation-params)
- [Dynamic Proxies in Java](http://www.baeldung.com/java-dynamic-proxies)
- [Java Double Brace Initialization](http://www.baeldung.com/java-double-brace-initialization)
-- [Guide to hashCode() in Java](http://www.baeldung.com/java-hashcode)
- [Guide to the Diamond Operator in Java](http://www.baeldung.com/java-diamond-operator)
-- [A Guide to the Static Keyword in Java](http://www.baeldung.com/java-static)
- [Quick Example - Comparator vs Comparable in Java](http://www.baeldung.com/java-comparator-comparable)
- [The Java continue and break Keywords](http://www.baeldung.com/java-continue-and-break)
-- [A Guide to Java Initialization](http://www.baeldung.com/java-initialization)
- [Nested Classes in Java](http://www.baeldung.com/java-nested-classes)
- [A Guide to Java Loops](http://www.baeldung.com/java-loops)
- [Varargs in Java](http://www.baeldung.com/java-varargs)
- [A Guide to Inner Interfaces in Java](http://www.baeldung.com/java-inner-interfaces)
-- [Polymorphism in Java](http://www.baeldung.com/java-polymorphism)
- [Recursion In Java](http://www.baeldung.com/java-recursion)
- [A Guide to the finalize Method in Java](http://www.baeldung.com/java-finalize)
-- [Method Overloading and Overriding in Java](http://www.baeldung.com/java-method-overload-override)
-- [How to Make a Deep Copy of an Object in Java](http://www.baeldung.com/java-deep-copy)
-- [Guide to Inheritance in Java](http://www.baeldung.com/java-inheritance)
-- [Object Type Casting in Java](http://www.baeldung.com/java-type-casting)
-- [The "final" Keyword in Java](http://www.baeldung.com/java-final)
- [A Guide to Java Enums](http://www.baeldung.com/a-guide-to-java-enums)
- [Infinite Loops in Java](http://www.baeldung.com/infinite-loops-java)
- [Quick Guide to java.lang.System](http://www.baeldung.com/java-lang-system)
-- [Type Erasure in Java Explained](http://www.baeldung.com/java-type-erasure)
- [Using Java Assertions](http://www.baeldung.com/java-assert)
-- [Pass-By-Value as a Parameter Passing Mechanism in Java](http://www.baeldung.com/java-pass-by-value-or-pass-by-reference)
-- [Variable and Method Hiding in Java](http://www.baeldung.com/java-variable-method-hiding)
-- [Access Modifiers in Java](http://www.baeldung.com/java-access-modifiers)
-- [Guide to the super Java Keyword](http://www.baeldung.com/java-super)
-- [Guide to the this Java Keyword](http://www.baeldung.com/java-this)
-- [Immutable Objects in Java](http://www.baeldung.com/java-immutable-object)
- [ClassNotFoundException vs NoClassDefFoundError](http://www.baeldung.com/java-classnotfoundexception-and-noclassdeffounderror)
- [The StackOverflowError in Java](http://www.baeldung.com/java-stack-overflow-error)
- [Create a Custom Exception in Java](http://www.baeldung.com/java-new-custom-exception)
@@ -55,7 +39,5 @@
- [Ternary Operator In Java](https://www.baeldung.com/java-ternary-operator)
- [How to Separate Double into Integer and Decimal Parts](https://www.baeldung.com/java-separate-double-into-integer-decimal-parts)
- [“Sneaky Throws” in Java](http://www.baeldung.com/java-sneaky-throws)
-- [Inheritance and Composition (Is-a vs Has-a relationship) in Java](http://www.baeldung.com/java-inheritance-composition)
-- [A Guide to Constructors in Java](https://www.baeldung.com/java-constructors)
- [Retrieving a Class Name in Java](https://www.baeldung.com/java-class-name)
- [Java equals() and hashCode() Contracts](https://www.baeldung.com/java-equals-hashcode-contracts)
diff --git a/core-java-lang/pom.xml b/core-java-lang/pom.xml
index 2f307859f1..e1663c0df7 100644
--- a/core-java-lang/pom.xml
+++ b/core-java-lang/pom.xml
@@ -56,22 +56,11 @@
${assertj-core.version}
test
-
- org.springframework
- spring-web
- ${springframework.spring-web.version}
-
javax.mail
mail
${javax.mail.version}
-
- nl.jqno.equalsverifier
- equalsverifier
- ${equalsverifier.version}
- test
-
@@ -82,330 +71,8 @@
true
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- **/*LiveTest.java
- **/*IntegrationTest.java
- **/*IntTest.java
- **/*LongRunningUnitTest.java
- **/*ManualTest.java
-
- true
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- copy-dependencies
- prepare-package
-
- copy-dependencies
-
-
- ${project.build.directory}/libs
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- ${maven-jar-plugin.version}
-
-
-
- true
- libs/
- org.baeldung.executable.ExecutableMavenJar
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
-
-
- package
-
- single
-
-
- ${project.basedir}
-
-
- org.baeldung.executable.ExecutableMavenJar
-
-
-
- jar-with-dependencies
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- ${maven-shade-plugin.version}
-
-
-
- shade
-
-
- true
-
-
- org.baeldung.executable.ExecutableMavenJar
-
-
-
-
-
-
-
-
- com.jolira
- onejar-maven-plugin
- ${onejar-maven-plugin.version}
-
-
-
- org.baeldung.executable.ExecutableMavenJar
- true
- ${project.build.finalName}-onejar.${project.packaging}
-
-
- one-jar
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
- ${spring-boot-maven-plugin.version}
-
-
-
- repackage
-
-
- spring-boot
- org.baeldung.executable.ExecutableMavenJar
-
-
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- ${exec-maven-plugin.version}
-
- java
- com.baeldung.outofmemoryerror.OutOfMemoryGCLimitExceed
-
- -Xmx300m
- -XX:+UseParallelGC
- -classpath
-
- com.baeldung.outofmemoryerror.OutOfMemoryGCLimitExceed
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- ${maven-javadoc-plugin.version}
-
-
- 1.8
-
-
-
-
-
- integration
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- integration-test
-
- test
-
-
-
- **/*ManualTest.java
-
-
- **/*IntegrationTest.java
- **/*IntTest.java
-
-
-
-
-
-
- json
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- ${exec-maven-plugin.version}
-
-
- run-benchmarks
-
- none
-
- exec
-
-
- test
- java
-
- -classpath
-
- org.openjdk.jmh.Main
- .*
-
-
-
-
-
-
-
-
-
-
-
- buildAgentLoader
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
- package
-
- jar
-
-
- agentLoader
- target/classes
-
-
- true
-
- ${project.build.outputDirectory}/META-INF/MANIFEST.MF
-
-
-
- com/baeldung/instrumentation/application/AgentLoader.class
- com/baeldung/instrumentation/application/Launcher.class
-
-
-
-
-
-
-
-
-
- buildApplication
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
- package
-
- jar
-
-
- application
- target/classes
-
-
- true
-
- ${project.build.outputDirectory}/META-INF/MANIFEST.MF
-
-
-
- com/baeldung/instrumentation/application/MyAtm.class
- com/baeldung/instrumentation/application/MyAtmApplication.class
- com/baeldung/instrumentation/application/Launcher.class
-
-
-
-
-
-
-
-
-
- buildAgent
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
- package
-
- jar
-
-
- agent
- target/classes
-
-
- true
-
- ${project.build.outputDirectory}/META-INF/MANIFEST.MF
-
-
-
- com/baeldung/instrumentation/agent/AtmTransformer.class
- com/baeldung/instrumentation/agent/MyInstrumentationAgent.class
-
-
-
-
-
-
-
-
-
-
@@ -420,17 +87,6 @@
3.10.0
-
-
- 2.21.0
- 4.3.4.RELEASE
- 3.0.0-M1
- 3.0.2
- 1.4.4
- 3.1.1
- 2.0.3.RELEASE
- 1.6.0
- 3.0.3
diff --git a/pom.xml b/pom.xml
index d3a665b4e1..f133f3b2be 100644
--- a/pom.xml
+++ b/pom.xml
@@ -382,6 +382,7 @@
core-java-concurrency-collections
core-java-io
core-java-lang
+ core-java-lang-oop
core-java-networking
core-java-sun
core-scala
@@ -1089,6 +1090,7 @@
core-java-concurrency-collections
core-java-io
core-java-lang
+ core-java-lang-oop
core-java-networking
core-java-sun
core-scala