diff --git a/src/main/java/fi/utu/tech/threadrunner2/assignment/Task1UsingThreadDistributor.java b/src/main/java/fi/utu/tech/threadrunner2/assignment/Task1UsingThreadDistributor.java
index d84c85f9adbdd841527600f7011df0a313ad7362..cca909344f76ab7841cd5feb650f33c8c1821571 100644
--- a/src/main/java/fi/utu/tech/threadrunner2/assignment/Task1UsingThreadDistributor.java
+++ b/src/main/java/fi/utu/tech/threadrunner2/assignment/Task1UsingThreadDistributor.java
@@ -2,15 +2,36 @@ package fi.utu.tech.threadrunner2.assignment;
 
 import fi.utu.tech.threadrunner2.mediator.ControlSet;
 import fi.utu.tech.threadrunner2.mediator.Mediator;
-
-public class Task1UsingThreadDistributor implements Distributor {
-
-	public Task1UsingThreadDistributor(Mediator mediator, ControlSet control) {
+import fi.utu.tech.threadrunner2.works.Work;
+import java.util.concurrent.BlockingQueue;
+public class Task1UsingThreadDistributor extends Thread implements Distributor {
+	
+	private Mediator mediator;
+	private BlockingQueue<Work> workList;
+	private ControlSet control;
 	
+	public Task1UsingThreadDistributor(Mediator mediator, ControlSet control) {
+		this.mediator = mediator;
+		this.control = control;
+		mediator.registerThread(this.hashCode(), "Thread");
 	}
 
 	public void execute() {
-
+			this.start();
+			mediator.setRunStatus("Created", this.hashCode());
+	}
+	public void run() {
+		//mediator.registerThread(this.hashCode(), "Jotain1");
+		mediator.setRunStatus("Running", this.hashCode());
+		int maara = control.getBlockSize();
+		workList = mediator.getWorkSlice(maara); //antaa listasta yhden työn. Tämä täytyy antaa tehtäväksi jollekin!
+		for( Work item : workList) {
+			mediator.setWorkStatus("Calculating", item);
+			item.work();
+			mediator.setWorkStatus("Done", item);
+			mediator.increaseCalculated(this.hashCode());
+		}
+		mediator.setRunStatus("Ended", this.hashCode());
 	}
 
 }