diff --git a/src/core/de.evoal.core.arff/pom.xml b/src/core/de.evoal.core.arff/pom.xml
index 78baba990f40977bc896390f254c6ef88f3181d8..c9ab7639e45d395013d11d8b515e279bdf8755b3 100644
--- a/src/core/de.evoal.core.arff/pom.xml
+++ b/src/core/de.evoal.core.arff/pom.xml
@@ -23,5 +23,12 @@
 			<groupId>org.junit.jupiter</groupId>
 			<artifactId>junit-jupiter</artifactId>
 		</dependency>
+
+		<dependency>
+			<groupId>org.eclipse.xtext</groupId>
+			<artifactId>org.eclipse.xtext.util</artifactId>
+			<version>2.29.0</version>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 </project>
diff --git a/src/core/de.evoal.core.arff/src/main/java/de/evoal/core/arff/io/ArffPropertiesReader.java b/src/core/de.evoal.core.arff/src/main/java/de/evoal/core/arff/io/ArffPropertiesReader.java
index 17e147aecc1f1c68b5aef259cda9acf019f67522..ac6580d2545082f349e4336a5b806e7e5c1a959c 100644
--- a/src/core/de.evoal.core.arff/src/main/java/de/evoal/core/arff/io/ArffPropertiesReader.java
+++ b/src/core/de.evoal.core.arff/src/main/java/de/evoal/core/arff/io/ArffPropertiesReader.java
@@ -95,7 +95,7 @@ public class ArffPropertiesReader implements PropertiesReader {
                     if(instance.isMissing(index)) {
                         return decoratee.apply(instance, template, builder);
                     }
-                    
+
                     // add current specification to builder and let the chain complete it
                     builder.add(pSpec);
                     final Properties properties = decoratee.apply(instance, template, builder);
diff --git a/src/core/de.evoal.core.arff/src/main/java/module-info.java b/src/core/de.evoal.core.arff/src/main/java/module-info.java
index 425f49371266011f6994037c92b479c31d6c36b6..0be6a9f5b8f5b9ea9ef9711d960992a07e01dc04 100644
--- a/src/core/de.evoal.core.arff/src/main/java/module-info.java
+++ b/src/core/de.evoal.core.arff/src/main/java/module-info.java
@@ -2,7 +2,6 @@ module de.evoal.core.arff {
     requires jakarta.inject.api;
     requires jakarta.enterprise.cdi.api;
 
-    requires guice;
     requires lombok;
     requires org.slf4j;
 
diff --git a/src/core/de.evoal.core.arff/src/test/java/de/evoal/core/arff/utils/LanguageUtils.java b/src/core/de.evoal.core.arff/src/test/java/de/evoal/core/arff/utils/LanguageUtils.java
index 8ab0f281f22eb70ccc001b66ac284e393a961894..1d1bd18da57630d423058debb6304a51243ab63d 100644
--- a/src/core/de.evoal.core.arff/src/test/java/de/evoal/core/arff/utils/LanguageUtils.java
+++ b/src/core/de.evoal.core.arff/src/test/java/de/evoal/core/arff/utils/LanguageUtils.java
@@ -32,7 +32,7 @@ public class LanguageUtils {
     }
 
     private static void loadPackages() {
-        //DataDescriptionLanguageStandaloneSetup.doSetup();
+        DataDescriptionLanguageStandaloneSetup.doSetup();
     }
 
     private static <T extends EObject> T load(final URI modelURI, final Class<T> cl) {
diff --git a/src/core/de.evoal.core.plugin/pom.xml b/src/core/de.evoal.core.plugin/pom.xml
index 6f77eb60209919b3009b84eca9d62b86538f976a..d142111b3a5358432496cfe536145225b613514f 100644
--- a/src/core/de.evoal.core.plugin/pom.xml
+++ b/src/core/de.evoal.core.plugin/pom.xml
@@ -78,21 +78,28 @@
 		<dependency>
 			<groupId>org.eclipse.emf</groupId>
 			<artifactId>org.eclipse.emf.ecore</artifactId>
-			<version>2.25.0</version>
+			<version>2.29.0</version>
 			<scope>provided</scope>
 		</dependency>
 
 		<dependency>
 			<groupId>org.eclipse.emf</groupId>
 			<artifactId>org.eclipse.emf.common</artifactId>
-			<version>2.25.0</version>
+			<version>2.27.0</version>
 			<scope>provided</scope>
 		</dependency>
 
 		<dependency>
 			<groupId>org.eclipse.xtext</groupId>
 			<artifactId>org.eclipse.xtext</artifactId>
-			<version>2.25.0</version>
+			<version>2.29.0</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.eclipse.xtext</groupId>
+			<artifactId>org.eclipse.xtext.util</artifactId>
+			<version>2.29.0</version>
 			<scope>provided</scope>
 		</dependency>
 
diff --git a/src/core/de.evoal.core/pom.xml b/src/core/de.evoal.core/pom.xml
index 2fec84e86d3f4a1283c80c6140f6b69b08e5b544..c004fee00c400529801e9bdbba9447dd85be3f8c 100644
--- a/src/core/de.evoal.core/pom.xml
+++ b/src/core/de.evoal.core/pom.xml
@@ -143,7 +143,7 @@
 
 		<dependency>
 			<groupId>de.evoal.languages</groupId>
-			<artifactId>de.evoal.languages.model.eal</artifactId>
+			<artifactId>de.evoal.languages.model.ol</artifactId>
 			<version>${evoal.languages.version}</version>
 			<scope>compile</scope>
 		</dependency>
@@ -186,7 +186,7 @@
 
 		<dependency>
 			<groupId>de.evoal.languages</groupId>
-			<artifactId>de.evoal.languages.model.eal.dsl</artifactId>
+			<artifactId>de.evoal.languages.model.ol.dsl</artifactId>
 			<version>${evoal.languages.version}</version>
 			<scope>compile</scope>
 		</dependency>
@@ -231,6 +231,13 @@
 			<scope>compile</scope>
 		</dependency>
 
+		<dependency>
+			<groupId>org.eclipse.xtext</groupId>
+			<artifactId>org.eclipse.xtext.util</artifactId>
+			<version>2.29.0</version>
+			<scope>compile</scope>
+		</dependency>
+
 		<dependency>
 			<groupId>io.jenetics</groupId>
 			<artifactId>jenetics.ext</artifactId>
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/constraints/correlation/el/RangeSwitch.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/constraints/correlation/el/RangeSwitch.java
index 02f3595259a89c5f0772fa0caaf9b33535335b57..33f382bd1d5742a62eb58e7d900a8d067cc92071 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/constraints/correlation/el/RangeSwitch.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/constraints/correlation/el/RangeSwitch.java
@@ -97,7 +97,7 @@ public class RangeSwitch extends ELSwitch<Range> {
 
     @Override
     public Range caseCall(final Call object) {
-        final de.evoal.languages.model.eal.FunctionName calledFunction = (de.evoal.languages.model.eal.FunctionName)object.getFunction();
+        final de.evoal.languages.model.ol.FunctionName calledFunction = (de.evoal.languages.model.ol.FunctionName)object.getFunction();
         if(!"range".equals(calledFunction.getDefinition().getName())) {
             throw new IllegalStateException("Searching for range but found: " + calledFunction.getDefinition().getName());
         }
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/ConfigurationValueProducer.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/ConfigurationValueProducer.java
index 4f341d3eacd2b9118e2a27b93bd1bbb2336ed4b5..6898925d6cb25fb6773a3bd6d66bb249c6da77f2 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/ConfigurationValueProducer.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/ConfigurationValueProducer.java
@@ -4,7 +4,7 @@ import de.evoal.core.api.board.Blackboard;
 import de.evoal.core.api.board.BlackboardEntry;
 import de.evoal.core.api.cdi.ConfigurationValue;
 import de.evoal.core.api.utils.LanguageHelper;
-import de.evoal.languages.model.eal.EAModel;
+import de.evoal.languages.model.ol.OptimisationModel;
 import de.evoal.languages.model.el.DoubleLiteral;
 import de.evoal.languages.model.instance.Array;
 import de.evoal.languages.model.instance.Instance;
@@ -78,7 +78,7 @@ public class ConfigurationValueProducer {
                 .toArray();
     }
 
-    private static <T> T lookup(final EAModel model, final String access) {
+    private static <T> T lookup(final OptimisationModel model, final String access) {
         return LanguageHelper.lookup(model.getInstance(), access);
     }
 }
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/DataConstraintProducer.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/DataConstraintProducer.java
index 3058fd2f08561b3c4986a5e70f761aeca41351ea..f9a5a649d821230bb871d1003265e4e31ba7ebc2 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/DataConstraintProducer.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/DataConstraintProducer.java
@@ -4,7 +4,7 @@ import de.evoal.core.api.ea.constraints.model.DataConstraints;
 import de.evoal.languages.model.ddl.DataDescription;
 import de.evoal.languages.model.ddl.DataDescriptionModel;
 import de.evoal.languages.model.ddl.TypedDataDescription;
-import de.evoal.languages.model.eal.EAModel;
+import de.evoal.languages.model.ol.OptimisationModel;
 import de.evoal.languages.model.el.Expression;
 import de.evoal.languages.model.instance.DataReference;
 import org.eclipse.emf.common.util.TreeIterator;
@@ -24,7 +24,7 @@ import java.util.stream.StreamSupport;
 @ApplicationScoped
 public class DataConstraintProducer {
     @Produces @Dependent
-    public DataConstraints produceDataInformation(final EAModel model) {
+    public DataConstraints produceDataInformation(final OptimisationModel model) {
         final TreeIterator<EObject> iterator = model.eAllContents();
         Iterable<EObject> iterable = () -> iterator;
 
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/EvolutionaryAlgorithmModelLoader.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/EvolutionaryAlgorithmModelLoader.java
index 675674449689193014f50acf95e86145e248a1e8..bc57b1b64112860299852d4748774209c3977190 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/EvolutionaryAlgorithmModelLoader.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/EvolutionaryAlgorithmModelLoader.java
@@ -10,9 +10,9 @@ import javax.enterprise.inject.Produces;
 
 import de.evoal.languages.model.ddl.dsl.DataDescriptionLanguageStandaloneSetup;
 import de.evoal.languages.model.dl.dsl.DefinitionLanguageStandaloneSetup;
-import de.evoal.languages.model.eal.EAModel;
-import de.evoal.languages.model.eal.dsl.EvolutionaryAlgorithmLanguageStandaloneSetup;
-import de.evoal.languages.model.eal.impl.EALPackageImpl;
+import de.evoal.languages.model.ol.OptimisationModel;
+import de.evoal.languages.model.ol.dsl.OptimisationLanguageStandaloneSetup;
+import de.evoal.languages.model.ol.impl.OLPackageImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -28,7 +28,7 @@ import java.io.File;
 public class EvolutionaryAlgorithmModelLoader {
     @Inject
     private Blackboard board;
-    private EAModel model;
+    private OptimisationModel model;
 
     public void load(final @Observes BlackboardEntry entry) {
         if(!entry.isSame(BlackboardEntry.EA_CONFIGURATION_FILE)) {
@@ -46,7 +46,7 @@ public class EvolutionaryAlgorithmModelLoader {
 
         initializeEMF();
 
-        final Injector ealInjector = new EvolutionaryAlgorithmLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
+        final Injector ealInjector = new OptimisationLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
         // do not remove the following line even if the injector is not used. Otherwise, parsing eal files breaks.
         final Injector idlInjector = new DefinitionLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
 
@@ -80,7 +80,7 @@ public class EvolutionaryAlgorithmModelLoader {
                 throw new IllegalArgumentException("EAL file contains errors. Please fix the file.");
             }
 
-            model = (EAModel) resource.getContents().get(0);
+            model = (OptimisationModel) resource.getContents().get(0);
             board.bind(BlackboardEntry.EA_CONFIGURATION, model);
         } catch (final Exception e) {
             log.error("Unable to evolutionary algorithm configuration file '{}'.", configurationFile, e);
@@ -91,15 +91,15 @@ public class EvolutionaryAlgorithmModelLoader {
      * Initialize the model packages and perform the parser setup.
      */
     private void initializeEMF() {
-        EALPackageImpl.init();
+        OLPackageImpl.init();
 
-        EvolutionaryAlgorithmLanguageStandaloneSetup.doSetup();
+        OptimisationLanguageStandaloneSetup.doSetup();
         DataDescriptionLanguageStandaloneSetup.doSetup();
     }
 
     @Produces
     @Dependent
-    public EAModel getConfiguration() {
+    public OptimisationModel getConfiguration() {
         return model;
     }
 }
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/search/HeuristicSearch.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/search/HeuristicSearch.java
index d70e8419a4cf8844a1b0da7857e8a471f9eb8fc8..e1a610f4a15e7f72efdc6a7340a79e4277e39877 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/search/HeuristicSearch.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/search/HeuristicSearch.java
@@ -21,11 +21,11 @@ import de.evoal.core.main.ea.codec.DynamicCodec;
 import de.evoal.core.main.ea.fitness.JeneticsFitnessFunction;
 import de.evoal.core.main.ea.initial.InitialPopulationFactory;
 import de.evoal.core.main.jenetics.ConstraintList;
-import de.evoal.languages.model.eal.EAModel;
 import de.evoal.languages.model.instance.Array;
 import de.evoal.languages.model.instance.Attribute;
 import de.evoal.languages.model.instance.Name;
 import de.evoal.languages.model.instance.Value;
+import de.evoal.languages.model.ol.OptimisationModel;
 import io.jenetics.*;
 import io.jenetics.engine.*;
 import io.jenetics.stat.MinMax;
@@ -137,7 +137,7 @@ public class HeuristicSearch {
 	}
 
 	private void setup() {
-		final EAModel configuration = board.get(BlackboardEntry.EA_CONFIGURATION);
+		final OptimisationModel configuration = board.get(BlackboardEntry.EA_CONFIGURATION);
 
 		final de.evoal.languages.model.instance.Instance alterers = LanguageHelper.lookup(configuration.getInstance(), "algorithm.alterers");
 
diff --git a/src/core/de.evoal.core/src/main/java/module-info.java b/src/core/de.evoal.core/src/main/java/module-info.java
index dabb7fc35be0c62c80a59a16b10635f1c7b1ed6b..139b49af35fb2522d20898440b4aa780123bb12d 100644
--- a/src/core/de.evoal.core/src/main/java/module-info.java
+++ b/src/core/de.evoal.core/src/main/java/module-info.java
@@ -21,7 +21,6 @@ module de.evoal.core {
     requires smile.math;
 
     requires decimal4j;
-    requires guice;
 
     requires com.fasterxml.jackson.databind;
 
@@ -33,11 +32,12 @@ module de.evoal.core {
     requires de.evoal.languages.model.ddl.dsl;
     requires de.evoal.languages.model.dl;
     requires de.evoal.languages.model.dl.dsl;
-    requires de.evoal.languages.model.eal;
-    requires de.evoal.languages.model.eal.dsl;
+    requires de.evoal.languages.model.ol;
+    requires de.evoal.languages.model.ol.dsl;
     requires de.evoal.languages.model.el;
     requires de.evoal.languages.model.el.dsl;
     requires de.evoal.languages.model.instance;
+    requires com.google.guice;
 
     exports de.evoal.core.api.board;
     exports de.evoal.core.api.cdi;
diff --git a/src/core/de.evoal.generator.main/src/main/java/module-info.java b/src/core/de.evoal.generator.main/src/main/java/module-info.java
index d615d991dc3a15090291f3bd26001147d2c212d6..813509a42b0cf08e4e79aaa361d7bab0685bc640 100644
--- a/src/core/de.evoal.generator.main/src/main/java/module-info.java
+++ b/src/core/de.evoal.generator.main/src/main/java/module-info.java
@@ -24,7 +24,6 @@ module de.evoal.generator.main {
     requires de.evoal.languages.model.generator.dsl;
 
     requires de.evoal.core;
-    requires guice;
     requires commons.math3;
 
     opens de.evoal.generator.main;
diff --git a/src/core/de.evoal.releng.parent/pom.xml b/src/core/de.evoal.releng.parent/pom.xml
index c750a06c37ca760b6eb49b045ee053c3e13ed62c..ddd671d70dc2e319067765276531f0ad3caf75da 100644
--- a/src/core/de.evoal.releng.parent/pom.xml
+++ b/src/core/de.evoal.releng.parent/pom.xml
@@ -113,21 +113,21 @@
             <dependency>
                 <groupId>org.eclipse.emf</groupId>
                 <artifactId>org.eclipse.emf.ecore</artifactId>
-                <version>2.25.0</version>
+                <version>2.29.0</version>
                 <scope>provided</scope>
             </dependency>
 
             <dependency>
                 <groupId>org.eclipse.emf</groupId>
                 <artifactId>org.eclipse.emf.common</artifactId>
-                <version>2.25.0</version>
+                <version>2.27.0</version>
                 <scope>provided</scope>
             </dependency>
 
             <dependency>
                 <groupId>org.eclipse.xtext</groupId>
                 <artifactId>org.eclipse.xtext</artifactId>
-                <version>2.25.0</version>
+                <version>2.29.0</version>
                 <scope>provided</scope>
             </dependency>
 
@@ -290,6 +290,10 @@
                         <version>9.4</version>
                     </dependency>
                 </dependencies>
+                <configuration>
+
+                </configuration>
+
             </plugin>
 
             <plugin>
diff --git a/src/core/de.evoal.surrogate.api/src/main/java/module-info.java b/src/core/de.evoal.surrogate.api/src/main/java/module-info.java
index 6d39848b365cf2fe22c4d1bbabe16482ed73db52..fcb98f44c0289782a2c2361b27904864bfdde732 100644
--- a/src/core/de.evoal.surrogate.api/src/main/java/module-info.java
+++ b/src/core/de.evoal.surrogate.api/src/main/java/module-info.java
@@ -10,7 +10,6 @@ module de.evoal.surrogate.api {
 
     requires org.eclipse.emf.ecore;
     requires org.eclipse.emf.common;
-    requires guice;
     requires org.eclipse.xtext;
     requires com.fasterxml.jackson.databind;
     requires smile.math;