diff --git a/Task_B/src/main/AdapterFactory.java b/Task_B/src/main/AdapterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..f71b3c86eab0ba173f7199a225d4cf67859d7134
--- /dev/null
+++ b/Task_B/src/main/AdapterFactory.java
@@ -0,0 +1,18 @@
+package main;
+
+public class AdapterFactory {
+	
+	public void buildTarget(String fileName, String target) {
+		Builder adapter;
+		if(fileName.equals("build.xml"))
+			adapter = new XMLAdapter();
+				
+		else 
+			adapter = new YAMLAdapter();
+		
+		adapter.build(1, target);
+		
+		
+	}
+
+}
diff --git a/Task_B/src/main/Builder.java b/Task_B/src/main/Builder.java
new file mode 100644
index 0000000000000000000000000000000000000000..7e0d9f5b3fe03e556be05bd0c5acff42b17cf822
--- /dev/null
+++ b/Task_B/src/main/Builder.java
@@ -0,0 +1,7 @@
+package main;
+
+public interface Builder {
+	
+public void build(int debuglevel, String target);
+
+}
diff --git a/Task_B/src/main/Main.java b/Task_B/src/main/Main.java
index e67fc3c4e4d4cbc0e3c4ef9768ac706aa279f2b7..c284c2ee52ae0ea9b00a1861b121bfa5ed441b15 100755
--- a/Task_B/src/main/Main.java
+++ b/Task_B/src/main/Main.java
@@ -10,13 +10,10 @@ import yaml.YamlBuildConfigurationReader;
 public class Main {
 	
 	public static void main(String[] args) {
-		XMLBuildConfigurationReader buildConfigurationReader = new XMLBuildConfigurationReader("build.xml");
-		final Project xmlProject = buildConfigurationReader.getProject();
-		Build build = new Build(xmlProject);
-		build.build(1, "dist");
-		YamlBuildConfigurationReader yamlConfigReader = new YamlBuildConfigurationReader("build.yaml");
-		final BuildConfig yamlBuildConfig = yamlConfigReader.getBuildConfig();
-		Compile compile = new Compile(yamlBuildConfig, "dist");
-		compile.build(1);
+		AdapterFactory factory = new AdapterFactory();
+		
+		final String target = "dist";
+	    factory.buildTarget("build.xml", target);
+	    factory.buildTarget("build.yaml", target);
 	}
 }
diff --git a/Task_B/src/main/XMLAdapter.java b/Task_B/src/main/XMLAdapter.java
new file mode 100644
index 0000000000000000000000000000000000000000..dc2c67b3fb30354da6a359f50cf21fc92502a3bd
--- /dev/null
+++ b/Task_B/src/main/XMLAdapter.java
@@ -0,0 +1,18 @@
+package main;
+
+import domain.Project;
+import xml.Build;
+import xml.XMLBuildConfigurationReader;
+
+public class XMLAdapter implements Builder {
+
+	@Override
+	public void build(int debuglevel, String target) {
+		XMLBuildConfigurationReader buildConfigurationReader = new XMLBuildConfigurationReader("build.xml");
+		final Project xmlProject = buildConfigurationReader.getProject();
+		Build build = new Build(xmlProject);
+		build.build(debuglevel, target);
+		
+	}
+
+}
diff --git a/Task_B/src/main/YAMLAdapter.java b/Task_B/src/main/YAMLAdapter.java
new file mode 100644
index 0000000000000000000000000000000000000000..2aaf9fd613b71b495289cf5f1bafa2e5634585ad
--- /dev/null
+++ b/Task_B/src/main/YAMLAdapter.java
@@ -0,0 +1,17 @@
+package main;
+
+import domain.BuildConfig;
+import yaml.Compile;
+import yaml.YamlBuildConfigurationReader;
+
+public class YAMLAdapter implements Builder {
+
+	@Override
+	public void build(int debuglevel, String target) {
+		YamlBuildConfigurationReader yamlConfigReader = new YamlBuildConfigurationReader("build.yaml");
+		final BuildConfig yamlBuildConfig = yamlConfigReader.getBuildConfig();
+		Compile compile = new Compile(yamlBuildConfig, target);
+		compile.build(debuglevel);
+	}
+
+}