diff --git a/src/main/java/de/hhu/stups/codegenerator/generators/DeclarationGenerator.java b/src/main/java/de/hhu/stups/codegenerator/generators/DeclarationGenerator.java
index 47d42d7259d284c91cc5bcf91d70cb06f76a4bfa..f8f0fda997c442a687a5a99995fc1fb40c758288 100644
--- a/src/main/java/de/hhu/stups/codegenerator/generators/DeclarationGenerator.java
+++ b/src/main/java/de/hhu/stups/codegenerator/generators/DeclarationGenerator.java
@@ -37,11 +37,12 @@ public class DeclarationGenerator {
     private final DeferredSetAnalyzer deferredSetAnalyzer;
 
     private final SetDefinitions setDefinitions;
+    private final boolean forEmbedded;
 
 
     public DeclarationGenerator(final STGroup currentGroup, final MachineGenerator machineGenerator, final TypeGenerator typeGenerator,
                                 final ImportGenerator importGenerator, final NameHandler nameHandler, final DeferredSetAnalyzer deferredSetAnalyzer,
-                                final SetDefinitions setDefinitions) {
+                                final SetDefinitions setDefinitions, final boolean forEmbedded) {
         this.currentGroup = currentGroup;
         this.machineGenerator = machineGenerator;
         this.typeGenerator = typeGenerator;
@@ -52,6 +53,7 @@ public class DeclarationGenerator {
         this.setToEnum = new HashMap<>();
         this.enumToMachine = new HashMap<>();
         this.setDefinitions = setDefinitions;
+        this.forEmbedded = forEmbedded;
     }
 
     /*
@@ -309,6 +311,7 @@ public class DeclarationGenerator {
     }
 
     public String generateSetEnumName(BType type) {
+        if (!this.forEmbedded) return "";
         if (type instanceof EnumeratedSetElementType) return ((EnumeratedSetElementType)type).getSetName();
         if (type instanceof BoolType) return "BOOL"; //TODO?
 
diff --git a/src/main/java/de/hhu/stups/codegenerator/generators/ExpressionGenerator.java b/src/main/java/de/hhu/stups/codegenerator/generators/ExpressionGenerator.java
index 813cff5623857c9e06cc890ca0ed1c379a91331e..24187391a843c20c1357ecaf06654954a270d1f3 100644
--- a/src/main/java/de/hhu/stups/codegenerator/generators/ExpressionGenerator.java
+++ b/src/main/java/de/hhu/stups/codegenerator/generators/ExpressionGenerator.java
@@ -172,11 +172,12 @@ public class ExpressionGenerator {
     private final IterationConstructHandler iterationConstructHandler;
 
     private SetDefinitions setDefinitions;
+    private final boolean forEmbedded;
 
     public ExpressionGenerator(final GeneratorMode mode, final STGroup currentGroup, final MachineGenerator machineGenerator, boolean useBigInteger, String minint, String maxint, final NameHandler nameHandler,
                                final ImportGenerator importGenerator, final DeclarationGenerator declarationGenerator,
                                final IdentifierGenerator identifierGenerator, final TypeGenerator typeGenerator,
-                               final IterationConstructHandler iterationConstructHandler, final RecordStructGenerator recordStructGenerator, SetDefinitions setDefinitions) {
+                               final IterationConstructHandler iterationConstructHandler, final RecordStructGenerator recordStructGenerator, SetDefinitions setDefinitions, boolean forEmbedded) {
         this.mode = mode;
         this.currentGroup = currentGroup;
         this.machineGenerator = machineGenerator;
@@ -192,6 +193,7 @@ public class ExpressionGenerator {
         this.iterationConstructHandler.setExpressionGenerator(this);
         this.recordStructGenerator = recordStructGenerator;
         this.setDefinitions = setDefinitions;
+        this.forEmbedded = forEmbedded;
     }
 
     /*
@@ -475,6 +477,7 @@ public class ExpressionGenerator {
     }
 
     private void addElementToConstSet(ExprNode expr) {
+        if (!this.forEmbedded) return;
         if (!(expr.getType() instanceof SetType)) return;
         BType subType = ((SetType) expr.getType()).getSubType();
         SetDefinition setDef = typeGenerator.addSetDefinition(subType, true); //create const-setDef is necessary
diff --git a/src/main/java/de/hhu/stups/codegenerator/generators/MachineGenerator.java b/src/main/java/de/hhu/stups/codegenerator/generators/MachineGenerator.java
index 694804bb9a0f871132148a7ef330132d5fa71b33..5eba60827ead169c553a737389592fd87fb0e701 100755
--- a/src/main/java/de/hhu/stups/codegenerator/generators/MachineGenerator.java
+++ b/src/main/java/de/hhu/stups/codegenerator/generators/MachineGenerator.java
@@ -175,9 +175,9 @@ public class MachineGenerator implements AbstractVisitor<String, Void> {
 		this.infiniteSetGenerator = new InfiniteSetGenerator(currentGroup, this, nameHandler);
 		this.identifierGenerator = new IdentifierGenerator(currentGroup, this, nameHandler, parallelConstructHandler, declarationGenerator);
 		this.recordStructGenerator = new RecordStructGenerator(currentGroup, this, typeGenerator, importGenerator, nameHandler);
-		this.declarationGenerator = new DeclarationGenerator(currentGroup, this, typeGenerator, importGenerator, nameHandler, deferredSetAnalyzer, setDefinitions);
+		this.declarationGenerator = new DeclarationGenerator(currentGroup, this, typeGenerator, importGenerator, nameHandler, deferredSetAnalyzer, setDefinitions, forEmbedded);
 		this.expressionGenerator = new ExpressionGenerator(mode, currentGroup, this, useBigInteger, minint, maxint, nameHandler, importGenerator,
-				declarationGenerator, identifierGenerator, typeGenerator, iterationConstructHandler, recordStructGenerator, setDefinitions);
+				declarationGenerator, identifierGenerator, typeGenerator, iterationConstructHandler, recordStructGenerator, setDefinitions, forEmbedded);
 		this.predicateGenerator = new PredicateGenerator(currentGroup, this, nameHandler, importGenerator, iterationConstructHandler, infiniteSetGenerator);
 		this.lambdaFunctionGenerator = new LambdaFunctionGenerator(currentGroup, expressionGenerator, predicateGenerator, typeGenerator, declarationGenerator);
 		this.recordStructAnalyzer = new RecordStructAnalyzer(recordStructGenerator);
diff --git a/src/main/java/de/hhu/stups/codegenerator/generators/TypeGenerator.java b/src/main/java/de/hhu/stups/codegenerator/generators/TypeGenerator.java
index d6e1463fc9bb8e2b822c1c80095773043af4701b..44e1490feed75d4aeaac7425d2d67af8dd04ac48 100644
--- a/src/main/java/de/hhu/stups/codegenerator/generators/TypeGenerator.java
+++ b/src/main/java/de/hhu/stups/codegenerator/generators/TypeGenerator.java
@@ -168,6 +168,7 @@ public class TypeGenerator {
 
     public SetDefinition addSetDefinition(BType type) { return this.addSetDefinition(type, false); }
     public SetDefinition addSetDefinition(BType type, boolean constant) {
+        if (!this.forEmbedded) return null;
         SetDefinition existingDef = this.setDefinitions.getDefinition(type);
         if (existingDef != null) {
             if (constant || !existingDef.isConstant()) return existingDef; //returns dynamic set if it exists, even if constant set is 'requested'. Caller needs to check for that. (we only keep const-definitions if there is no dynamic one)
diff --git a/src/test/java/de/hhu/stups/codegenerator/java/TestJava.java b/src/test/java/de/hhu/stups/codegenerator/java/TestJava.java
index 69cfb40958be92a2cdb60cc9ce9e588d1b7a4392..7bb965218ce13796d587918dc6e5bc2d97733b69 100755
--- a/src/test/java/de/hhu/stups/codegenerator/java/TestJava.java
+++ b/src/test/java/de/hhu/stups/codegenerator/java/TestJava.java
@@ -121,9 +121,9 @@ public class TestJava {
 			return;
 		}
 
-		String generatedMachinePath = Paths.get("build", "resources", "test", "de", "hhu", "stups", "codegenerator", machinePath.substring(0, machinePath.length() - machineName.length()) + " " + machineName).toString();
-
-		Process executeProcess = runtime.exec("java -cp btypes.jar:" + generatedMachinePath);
+		String generatedMachinePath = Paths.get("build", "resources", "test", "de", "hhu", "stups", "codegenerator", machinePath.substring(0, machinePath.length() - machineName.length())).toString();
+		String separator = ";"; // For windows, use ';', UNIX ':'
+		Process executeProcess = runtime.exec("java -cp \"btypes.jar" + separator + generatedMachinePath + "\" " + machineName);
 		executeProcess.waitFor();
 
 		error = streamToString(executeProcess.getErrorStream());
@@ -131,7 +131,7 @@ public class TestJava {
 			throw new RuntimeException(error);
 		}
 
-		String result = streamToString(executeProcess.getInputStream()).replaceAll("\n", "");
+		String result = streamToString(executeProcess.getInputStream()).replaceAll("[\n\r]", "");
 		String expectedOutput = streamToString(new FileInputStream(mainPath.toFile().getAbsoluteFile().toString().replaceAll(".java", ".out"))).replaceAll("\n", "");
 
 		System.out.println("Assert: " + result + " = " + expectedOutput);
diff --git a/src/test/java/de/hhu/stups/codegenerator/rust_embedded/TestRelation.java b/src/test/java/de/hhu/stups/codegenerator/rust_embedded/TestRelation.java
index 7c8cb5b20f46f2f30ee600a9d389c4e185625888..62716fd28a10719d49a06c522ab69cf4fbb29dd0 100644
--- a/src/test/java/de/hhu/stups/codegenerator/rust_embedded/TestRelation.java
+++ b/src/test/java/de/hhu/stups/codegenerator/rust_embedded/TestRelation.java
@@ -110,26 +110,27 @@ public class TestRelation extends TestRSE {
 
 
 
-    @Test
+    @Test(expected = RuntimeException.class) //grows to big for embedded
     public void testRelationGeneralizedUnion() throws Exception {
         testRSE("RelationGeneralizedUnion", "RelationGeneralizedUnionAddition.strs");
     }
 
-    @Test
+    @Test(expected = RuntimeException.class) //grows to big for embedded
     public void testRelationGeneralizedUnionEmpty() throws Exception {
         testRSE("RelationGeneralizedUnionEmpty", "RelationGeneralizedUnionEmptyAddition.strs");
     }
 
-    @Test
+    @Test(expected = RuntimeException.class) //grows to big for embedded
     public void testRelationGeneralizedIntersection() throws Exception {
         testRSE("RelationGeneralizedIntersection", "RelationGeneralizedIntersectionAddition.strs");
     }
 
-    @Test
+    @Test(expected = RuntimeException.class) //grows to big for embedded
     public void testRelationGeneralizedIntersectionEmpty() throws Exception {
         testRSE("RelationGeneralizedIntersectionEmpty", "RelationGeneralizedIntersectionEmptyAddition.strs");
     }
 
+
     @Test
     public void testFunctionalOverride() throws Exception {
         testRSE("FunctionalOverride", "FunctionalOverrideAddition.strs");
diff --git a/src/test/resources/de/hhu/stups/codegenerator/FunctionalOverride.mch b/src/test/resources/de/hhu/stups/codegenerator/FunctionalOverride.mch
index b0bc824c6829ff1a1c81ff72da19bd21275c1711..810aa901ab043be57badf7f8c7cc634fc5bfc108 100644
--- a/src/test/resources/de/hhu/stups/codegenerator/FunctionalOverride.mch
+++ b/src/test/resources/de/hhu/stups/codegenerator/FunctionalOverride.mch
@@ -1,14 +1,16 @@
 MACHINE FunctionalOverride
 
+SETS EINT = {ZERO, ONE, TWO, THREE, FOUR}
+
 VARIABLES  f, s
 
-INVARIANT  f : INT --> INT & s : INT
+INVARIANT  f : EINT --> EINT & s : EINT
 
-INITIALISATION f := {0|->0, 1|->1, 2|->2}; s := 3
+INITIALISATION f := {ZERO|->ZERO, ONE|->ONE, TWO|->TWO}; s := THREE
 
 OPERATIONS
 
-	calculate = BEGIN s := f(1) END;
-	out <-- getRes = out := s
+	calculate = BEGIN s := f(ONE) END;
+	out <-- getRes = IF s = ONE THEN out := 1 ELSE out := 0 END
 
 END
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/Intersection.out b/src/test/resources/de/hhu/stups/codegenerator/Intersection.out
index 6d9d648d4d307d2242cc7ceb7c1f06e18705e30f..53bc05aa27b6c2f2481a84263c6026d85092cd00 100644
--- a/src/test/resources/de/hhu/stups/codegenerator/Intersection.out
+++ b/src/test/resources/de/hhu/stups/codegenerator/Intersection.out
@@ -1 +1 @@
-{2}
\ No newline at end of file
+{TWO}
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/IntersectionAddition.strs b/src/test/resources/de/hhu/stups/codegenerator/IntersectionAddition.strs
index 4fa58faa9194a0cfbb9adbb6bb2b539aa431a645..4424b86edaf0e28519cac9af9b1d3ad992ef1cc6 100644
--- a/src/test/resources/de/hhu/stups/codegenerator/IntersectionAddition.strs
+++ b/src/test/resources/de/hhu/stups/codegenerator/IntersectionAddition.strs
@@ -3,8 +3,8 @@ fn main() {
     intersection.calculate();
     let res = intersection.getRes();
     if res.card() == 1 && res.elementOf(&EINT::TWO) {
-        println!("{{2}}");
+        println!("{{TWO}}");
     } else {
         println!("Wrong output! Card is: {}", res.card())
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/resources/de/hhu/stups/codegenerator/Override.mch b/src/test/resources/de/hhu/stups/codegenerator/Override.mch
index 9deab40aad05319e46058d0ee55dd5376eee8e34..fca38402fa098c03da6170db0482b297393f3235 100644
--- a/src/test/resources/de/hhu/stups/codegenerator/Override.mch
+++ b/src/test/resources/de/hhu/stups/codegenerator/Override.mch
@@ -11,6 +11,6 @@ INITIALISATION f := {ZERO|->ZERO, ONE|->ONE, TWO|->TWO}; s := {ONE|->THREE}; r:=
 OPERATIONS
 
 	calculate = BEGIN r := r <+ s END;
-	out <-- getRes = out := r(ONE)
+	out <-- getRes = IF r(ONE) = THREE THEN out := 3 ELSE out := 0 END
 
 END
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/OverrideAddition.strs b/src/test/resources/de/hhu/stups/codegenerator/OverrideAddition.strs
index 60983cf4b3511ff9ce7ce106930122a0e780942b..eae48320826e3045c08230a24b318fdf40ba2756 100644
--- a/src/test/resources/de/hhu/stups/codegenerator/OverrideAddition.strs
+++ b/src/test/resources/de/hhu/stups/codegenerator/OverrideAddition.strs
@@ -1,9 +1,5 @@
 fn main() {
     let mut _override = Override::new();
     _override.calculate();
-    if _override.getRes().eq(&EINT::THREE) {
-        println!("3");
-    } else {
-        println!("Wrong result!");
-    }
+    println!("{}", _override.getRes());
 }
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/RangeRestriction.out b/src/test/resources/de/hhu/stups/codegenerator/RangeRestriction.out
index bc138e2a8ee03dc9430d93299c0291352148d0bf..331f77c338fa8f3108d651891af984ecd8a224ce 100644
--- a/src/test/resources/de/hhu/stups/codegenerator/RangeRestriction.out
+++ b/src/test/resources/de/hhu/stups/codegenerator/RangeRestriction.out
@@ -1 +1 @@
-{(1 |-> 2)}
\ No newline at end of file
+{(ONE |-> TWO)}
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/RangeRestrictionAddition.strs b/src/test/resources/de/hhu/stups/codegenerator/RangeRestrictionAddition.strs
index 9d64955204a2549733ede24744a8dbafe06a3c85..9b5770b67a7a4e093cae9b4a4bbe58a82bd8b651 100644
--- a/src/test/resources/de/hhu/stups/codegenerator/RangeRestrictionAddition.strs
+++ b/src/test/resources/de/hhu/stups/codegenerator/RangeRestrictionAddition.strs
@@ -3,7 +3,7 @@ fn main() {
     range.calculate();
     let res =  range.getRes();
     if res.card() == 1 && res.functionCall(&EINT::ONE).eq(&EINT::TWO) {
-        println!("{{(1 |-> 2)}}");
+        println!("{{(ONE |-> TWO)}}");
     } else {
         println!("Wrong result!");
     }