diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedDoubleChromosome.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedDoubleChromosome.java
index 57ec17d31e6e86b3a9b340251550736bfa90c2e1..2b85fc688b952118d4a63e333924c2b64b1b6e95 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedDoubleChromosome.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedDoubleChromosome.java
@@ -1,13 +1,19 @@
 package de.evoal.core.main.ea.codec.chromosome;
 
+import de.evoal.core.api.properties.PropertySpecification;
+import de.evoal.core.api.properties.info.PropertiesBoundaries;
 import de.evoal.languages.model.ddl.DataDescription;
 import de.evoal.languages.model.instance.Instance;
 import io.jenetics.util.DoubleRange;
 
+import javax.inject.Inject;
 import java.util.List;
 import java.util.stream.Collectors;
 
 public abstract class DynamicBoundedDoubleChromosome extends DynamicChromosome {
+    @Inject
+    private PropertiesBoundaries boundaries;
+
     protected List<DoubleRange> ranges;
 
     @Override
@@ -20,7 +26,8 @@ public abstract class DynamicBoundedDoubleChromosome extends DynamicChromosome {
     }
 
     protected DoubleRange toRange(final DataDescription dataDescription) {
-        // TODO Find actual ranges from DDL
-        return DoubleRange.of(-(Double.MAX_VALUE/2), (Double.MAX_VALUE/2));
+        PropertiesBoundaries.Boundaries bounds = boundaries.get(new PropertySpecification(dataDescription.getName(), dataDescription));
+
+        return DoubleRange.of(bounds.lower().doubleValue(), bounds.upper().doubleValue());
     }
 }
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedIntegerChromosome.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedIntegerChromosome.java
index 998a885c7dbf09e53c67b64b972c54d930e2288a..70d8330cc5a798453e69031e55f6f1e258c1c42d 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedIntegerChromosome.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicBoundedIntegerChromosome.java
@@ -1,13 +1,20 @@
 package de.evoal.core.main.ea.codec.chromosome;
 
+import de.evoal.core.api.properties.PropertySpecification;
+import de.evoal.core.api.properties.info.PropertiesBoundaries;
 import de.evoal.languages.model.ddl.DataDescription;
 import de.evoal.languages.model.instance.Instance;
+import io.jenetics.util.DoubleRange;
 import io.jenetics.util.IntRange;
 
+import javax.inject.Inject;
 import java.util.List;
 import java.util.stream.Collectors;
 
 public abstract class DynamicBoundedIntegerChromosome extends DynamicChromosome {
+    @Inject
+    private PropertiesBoundaries boundaries;
+
     protected List<IntRange> ranges;
 
     @Override
@@ -20,7 +27,8 @@ public abstract class DynamicBoundedIntegerChromosome extends DynamicChromosome
     }
 
     protected IntRange toRange(final DataDescription dataDescription) {
-        // TODO Find actual ranges from DDL
-        return IntRange.of(-(Integer.MAX_VALUE/2), (Integer.MAX_VALUE/2));
+        PropertiesBoundaries.Boundaries bounds = boundaries.get(new PropertySpecification(dataDescription.getName(), dataDescription));
+
+        return IntRange.of(bounds.lower().intValue(), bounds.upper().intValue());
     }
 }
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicIntegerChromosome.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicIntegerChromosome.java
index 83433be67806731e9dad09edcf10ccacda28e025..44481abd0aa38d7577ea04334e4cce4a1e56d071 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicIntegerChromosome.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/codec/chromosome/DynamicIntegerChromosome.java
@@ -2,6 +2,7 @@ package de.evoal.core.main.ea.codec.chromosome;
 
 import de.evoal.core.api.properties.Properties;
 import de.evoal.core.api.properties.PropertySpecification;
+import de.evoal.core.api.properties.info.PropertiesBoundaries;
 import de.evoal.core.main.jenetics.BoundedDoubleChromosome;
 import de.evoal.core.main.jenetics.BoundedDoubleGene;
 import de.evoal.core.main.jenetics.BoundedIntegerChromosome;
@@ -10,6 +11,7 @@ import io.jenetics.Chromosome;
 import io.jenetics.util.IntRange;
 
 import javax.enterprise.context.Dependent;
+import javax.inject.Inject;
 import javax.inject.Named;
 import java.util.ArrayList;
 import java.util.List;