diff --git a/core/src/cz/nic/tablexia/game/games/runes/actors/RunesHolder.java b/core/src/cz/nic/tablexia/game/games/runes/actors/RunesHolder.java
index 0333666f5510eda1b69b7e9a581262a6eed8e789..c1e81fc1113eb25c28bfffa72cf6039f263942f4 100644
--- a/core/src/cz/nic/tablexia/game/games/runes/actors/RunesHolder.java
+++ b/core/src/cz/nic/tablexia/game/games/runes/actors/RunesHolder.java
@@ -14,7 +14,6 @@ import cz.nic.tablexia.TablexiaSettings;
 import cz.nic.tablexia.game.common.TablexiaRandom;
 import cz.nic.tablexia.game.common.media.GfxLibrary;
 import cz.nic.tablexia.game.difficulty.GameDifficulty;
-import cz.nic.tablexia.game.games.runes.assets.RuneDefinition;
 import cz.nic.tablexia.game.games.runes.helper.PositionDefinition;
 import cz.nic.tablexia.game.games.runes.helper.RuneDescription;
 import cz.nic.tablexia.game.games.runes.model.RunesDifficultyDefinition;
@@ -80,10 +79,6 @@ public class RunesHolder extends Group {
         return false;
     }
 
-    public int getRunesCount() {
-        return runesCount;
-    }
-
     public int getWrongRunesCount() {
         return runesCount - holderTargets.size();
     }
@@ -135,10 +130,6 @@ public class RunesHolder extends Group {
         setWidth(getWidth() + actor.getWidth() + runesGroup.getSpace());
     }
 
-    public void setHolderTargets(List<RuneDescription> runeDescriptions) {
-        holderTargets = runeDescriptions;
-    }
-
     /**
      * Set scale value depending on position (folded holder can be smaller/bigger depending on PositionDefinition values)
      *
@@ -204,7 +195,7 @@ public class RunesHolder extends Group {
         prevX = 0;
         setAlternativeScale(positionDefinition.getScale());
         setPosition(positionDefinition.getX() * width, positionDefinition.getY() * height);
-        maxEntities = positionDefinition.getMaxRunes();
+        maxEntities = PositionDefinition.getMaxChildrenCount(gameDifficulty,positionDefinition);
     }
 
     public boolean isFolded() {
diff --git a/core/src/cz/nic/tablexia/game/games/runes/helper/PositionDefinition.java b/core/src/cz/nic/tablexia/game/games/runes/helper/PositionDefinition.java
index c23806bde6b8efc631a0930b49fac02b37f935f6..f9ab1393e0190bc7d87850e7103285e340d20f91 100644
--- a/core/src/cz/nic/tablexia/game/games/runes/helper/PositionDefinition.java
+++ b/core/src/cz/nic/tablexia/game/games/runes/helper/PositionDefinition.java
@@ -14,43 +14,35 @@ import cz.nic.tablexia.game.games.runes.model.RunesGameProperties;
  */
 public enum PositionDefinition {
 
-    //x,y, max height, max runes
-    
-    POS1(0.22f,0.14f),
-    POS2(0.22f,0.51f),
-    POS3(0.22f,0.87f),
-    POS4(0.58f,0.71f,3),
-    POS5(0.58f,0.37f,3),
-    POS6(0.58f,0.01f,3),
-    POS7(0.04f,0.57f,2),
-    POS8(0.02f,0.19f,2);
+    //x,y, max runes, max runes clusters
+
+    POS1(0.22f, 0.14f, 5, 4),
+    POS2(0.22f, 0.51f, 5, 4),
+    POS3(0.22f, 0.87f, 5, 4),
+    POS4(0.58f, 0.71f, 3, 2),
+    POS5(0.58f, 0.37f, 3, 2),
+    POS6(0.58f, 0.01f, 3, 2),
+    POS7(0.04f, 0.57f, 3, 2),
+    POS8(0.04f, 0.19f, 3, 2);
     
     private static final float FOLDED_SCALE = 0.6f;
-    private static final int MAX_RUNES = 4;
 
     public static final PositionDefinition[] MAP_EASY   = PositionDefinition.values();
     public static final PositionDefinition[] MAP_MEDIUM = PositionDefinition.values(); //was meant to be different for every difficulty
     public static final PositionDefinition[] MAP_HARD   = PositionDefinition.values();
 
     private float x, y, scale;
-    private int maxRunes;
-
-    PositionDefinition(float x, float y) {
-        this(x,y,FOLDED_SCALE,MAX_RUNES);
-    }
-
-    PositionDefinition(float x, float y, float scale) {
-        this(x,y,scale,MAX_RUNES);
-    }
+    private int maxRunes, maxRunesClusters;
 
-    PositionDefinition(float x, float y, int maxRunes) {
-        this(x,y,FOLDED_SCALE,maxRunes);
+    PositionDefinition(float x, float y, int maxRunes, int maxRunesClusters) {
+        this(x, y, FOLDED_SCALE, maxRunes, maxRunesClusters);
     }
 
-    PositionDefinition(float x, float y, float scale, int maxRunes) {
+    PositionDefinition(float x, float y, float scale, int maxRunes, int maxRunesClusters) {
         this.x = x;
         this.y = y;
         this.maxRunes = maxRunes;
+        this.maxRunesClusters = maxRunesClusters;
         this.scale = scale;
     }
 
@@ -71,6 +63,10 @@ public enum PositionDefinition {
         return y;
     }
 
+    public int getMaxRunesClusters() {
+        return maxRunesClusters;
+    }
+
     private static List<PositionDefinition> getMapPositions(GameDifficulty runesDifficulty) {
         return Arrays.asList(RunesDifficultyDefinition.getRunesDifficultyForGameDifficulty(runesDifficulty).getPositionDefinitions());
     }
@@ -88,4 +84,9 @@ public enum PositionDefinition {
         return RunesDifficultyDefinition.getRunesDifficultyForGameDifficulty(gameDifficulty).getGroupsCount()[round];
     }
     
+    public static int getMaxChildrenCount(GameDifficulty gameDifficulty, PositionDefinition positionDefinition){
+        if (gameDifficulty.equals(GameDifficulty.HARD)) return positionDefinition.getMaxRunesClusters();
+        else return positionDefinition.getMaxRunes();
+    }
+    
 }