diff --git a/VL04-02/ModulTest_Lib/.classpath b/VL04-02/ModulTest_Lib/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..c0f260fb4c17b39c140a31c40738e941a9c4e58d
--- /dev/null
+++ b/VL04-02/ModulTest_Lib/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-12">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/VL04-02/ModulTest_Lib/.gitignore b/VL04-02/ModulTest_Lib/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ae3c1726048cd06b9a143e0376ed46dd9b9a8d53
--- /dev/null
+++ b/VL04-02/ModulTest_Lib/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/VL04-02/ModulTest_Lib/.project b/VL04-02/ModulTest_Lib/.project
new file mode 100644
index 0000000000000000000000000000000000000000..f96e881f6bf8248b19e043c36f2c3b90a1e8ac33
--- /dev/null
+++ b/VL04-02/ModulTest_Lib/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ModulTest_Lib</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/VL04-02/ModulTest_Lib/.settings/org.eclipse.jdt.core.prefs b/VL04-02/ModulTest_Lib/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..71f736ff9f8e994ec235e235d5e752a16a3386ac
--- /dev/null
+++ b/VL04-02/ModulTest_Lib/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,14 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=12
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=12
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=12
diff --git a/VL04-02/ModulTest_Lib/src/de/hsrt/inf/meti/inf3vl/factory/BlablaMaker.java b/VL04-02/ModulTest_Lib/src/de/hsrt/inf/meti/inf3vl/factory/BlablaMaker.java
new file mode 100644
index 0000000000000000000000000000000000000000..7fc2605b448a3b299af854cccefa3113c76e13b9
--- /dev/null
+++ b/VL04-02/ModulTest_Lib/src/de/hsrt/inf/meti/inf3vl/factory/BlablaMaker.java
@@ -0,0 +1,22 @@
+package de.hsrt.inf.meti.inf3vl.factory;
+import static java.lang.System.out;
+public class BlablaMaker {
+	private static int blablaCounter = 0;
+	private BlablaMaker() {
+		//Konstruktor private --> factory Methode erforderlich
+	}	
+	public static BlablaMaker blablaMakerFactory() {
+		if (blablaCounter == 0) {
+			blablaCounter++;
+			return new BlablaMaker();
+		}
+		else {
+			return null;
+		}
+	}
+	public void makeBlabla() {
+		out.println("can't stop my blabla");
+	}
+}
+
+
diff --git a/VL04-02/ModulTest_Main/.classpath b/VL04-02/ModulTest_Main/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..1fe382cc01536f3f7a256eccca2bbe4a413ebdc0
--- /dev/null
+++ b/VL04-02/ModulTest_Main/.classpath
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-12">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/ModulTest_Lib"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/VL04-02/ModulTest_Main/.project b/VL04-02/ModulTest_Main/.project
new file mode 100644
index 0000000000000000000000000000000000000000..baae9dcaf3939f24ef5a4bdb1f10e1b9a140188a
--- /dev/null
+++ b/VL04-02/ModulTest_Main/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ModulTest_Main</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/VL04-02/ModulTest_Main/.settings/org.eclipse.jdt.core.prefs b/VL04-02/ModulTest_Main/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..71f736ff9f8e994ec235e235d5e752a16a3386ac
--- /dev/null
+++ b/VL04-02/ModulTest_Main/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,14 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=12
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=12
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=12
diff --git a/VL04-02/ModulTest_Main/bin/.gitignore b/VL04-02/ModulTest_Main/bin/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..fd04598cccd1eb791debf5b0edfff26368dbb294
--- /dev/null
+++ b/VL04-02/ModulTest_Main/bin/.gitignore
@@ -0,0 +1 @@
+/de/
diff --git a/VL04-02/ModulTest_Main/src/de/hsrt/inf/meti/inf3vl/main/Main.java b/VL04-02/ModulTest_Main/src/de/hsrt/inf/meti/inf3vl/main/Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..fc0985145693e52046d98011b652eac53be86a80
--- /dev/null
+++ b/VL04-02/ModulTest_Main/src/de/hsrt/inf/meti/inf3vl/main/Main.java
@@ -0,0 +1,8 @@
+package de.hsrt.inf.meti.inf3vl.main;
+import de.hsrt.inf.meti.inf3vl.factory.BlablaMaker;
+
+public class Main {
+	public static void main(String[] args) {
+		BlablaMaker.blablaMakerFactory().makeBlabla();
+	}
+}