diff --git a/facade/src/main/java/com/iluwatar/DwarvenGoldmineFacade.java b/facade/src/main/java/com/iluwatar/DwarvenGoldmineFacade.java
index fc5af7338..b3a01a3d9 100644
--- a/facade/src/main/java/com/iluwatar/DwarvenGoldmineFacade.java
+++ b/facade/src/main/java/com/iluwatar/DwarvenGoldmineFacade.java
@@ -1,6 +1,7 @@
 package com.iluwatar;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -15,7 +16,7 @@ import java.util.List;
  */
 public class DwarvenGoldmineFacade {
 
-	List<DwarvenMineWorker> workers;
+	private final List<DwarvenMineWorker> workers;
 
 	public DwarvenGoldmineFacade() {
 		workers = new ArrayList<>();
@@ -25,23 +26,20 @@ public class DwarvenGoldmineFacade {
 	}
 
 	public void startNewDay() {
-		for (DwarvenMineWorker worker : workers) {
-			worker.wakeUp();
-			worker.goToMine();
-		}
+        makeActions(workers, DwarvenMineWorker.Action.WAKE_UP, DwarvenMineWorker.Action.GO_TO_MINE);
 	}
 
 	public void digOutGold() {
-		for (DwarvenMineWorker worker : workers) {
-			worker.work();
-		}
+        makeActions(workers, DwarvenMineWorker.Action.WORK);
 	}
 
 	public void endDay() {
-		for (DwarvenMineWorker worker : workers) {
-			worker.goHome();
-			worker.goToSleep();
-		}
+        makeActions(workers, DwarvenMineWorker.Action.GO_HOME, DwarvenMineWorker.Action.GO_TO_SLEEP);
 	}
 
+    private void makeActions(Collection<DwarvenMineWorker> workers, DwarvenMineWorker.Action... actions) {
+        for (DwarvenMineWorker worker : workers) {
+            worker.action(actions);
+        }
+    }
 }
diff --git a/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java b/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java
index 27ec4e87b..74ff80984 100644
--- a/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java
+++ b/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java
@@ -23,8 +23,40 @@ public abstract class DwarvenMineWorker {
 		System.out.println(name() + " goes to the mine.");
 	}
 
+    private void action(Action action) {
+        switch (action) {
+            case GO_TO_SLEEP:
+                goToSleep();
+                break;
+            case WAKE_UP:
+                wakeUp();
+                break;
+            case GO_HOME:
+                goHome();
+                break;
+            case GO_TO_MINE:
+                goToMine();
+                break;
+            case WORK:
+                work();
+                break;
+            default:
+                System.out.println("Undefined action");
+                break;
+        }
+    }
+
+    public void action(Action... actions) {
+        for (Action action : actions) {
+            action(action);
+        }
+    }
+
 	public abstract void work();
 
 	public abstract String name();
 
+    static enum Action {
+        GO_TO_SLEEP, WAKE_UP, GO_HOME, GO_TO_MINE, WORK
+    }
 }