diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/MappingBuilder.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/MappingBuilder.java
index 927f211..9e36c94 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/MappingBuilder.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/MappingBuilder.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2018-2019 Robert Bosch GmbH and others.
+ * Copyright (c) 2018-2021 Robert Bosch GmbH and others.
  *
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -24,7 +24,6 @@
 import org.eclipse.app4mc.amalthea.model.Scheduler;
 import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;
 import org.eclipse.app4mc.amalthea.model.SchedulerDefinition;
-import org.eclipse.app4mc.amalthea.model.SchedulingParameterDefinition;
 import org.eclipse.app4mc.amalthea.model.TaskAllocation;
 import org.eclipse.app4mc.amalthea.model.Value;
 import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
@@ -79,12 +78,10 @@
 
 	public void schedulingParameter(final TaskAllocation container, final String parameterName,
 			final Value parameterValue) {
-		Scheduler sched = container.getScheduler();
-		// TODO: get parameters from parent scheduler if current scheduler is grouping
+		final Scheduler sched = container.getScheduler();
 		final SchedulerDefinition sd = sched.getDefinition();
-		final SchedulingParameterDefinition spd = sd.getProcessParameters().stream().filter(
-				pad -> pad.getName().equals(parameterName)).findFirst().get();
-		container.getSchedulingParameters().put(spd, parameterValue);
+		sd.getProcessParameters().stream().filter(pad -> pad.getName().equals(parameterName)).findFirst()
+				.ifPresent(spd -> container.getSchedulingParameters().put(spd, parameterValue));
 	}
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/OperatingSystemBuilder.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/OperatingSystemBuilder.java
index a9ff047..0f327b1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/OperatingSystemBuilder.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/OperatingSystemBuilder.java
@@ -91,9 +91,8 @@
 
 	public void schedulingParameter(final Scheduler container, final String parameterName, final Value parameterValue) {
 		final SchedulerDefinition sd = container.getDefinition();
-		final SchedulingParameterDefinition spd = sd.getAlgorithmParameters().stream().filter(
-				pad -> pad.getName().equals(parameterName)).findFirst().get();
-		container.getSchedulingParameters().put(spd, parameterValue);
+		sd.getAlgorithmParameters().stream().filter(pad -> pad.getName().equals(parameterName)).findFirst()
+				.ifPresent(spd -> container.getSchedulingParameters().put(spd, parameterValue));
 	}
 
 	public void interruptController(final OperatingSystem container,
@@ -124,11 +123,9 @@
 	public void schedulingParameter(final SchedulerAssociation container, final String parameterName,
 			final Value parameterValue) {
 		Scheduler sched = container.getParent();
-		// TODO: get parameters from parent scheduler if current scheduler is grouping
 		final SchedulerDefinition sd = sched.getDefinition();
-		final SchedulingParameterDefinition spd = sd.getProcessParameters().stream().filter(
-				pad -> pad.getName().equals(parameterName)).findFirst().get();
-		container.getSchedulingParameters().put(spd, parameterValue);
+		sd.getProcessParameters().stream().filter(pad -> pad.getName().equals(parameterName)).findFirst()
+				.ifPresent(spd -> container.getSchedulingParameters().put(spd, parameterValue));
 	}
 
 	// ********** OS instructions (overhead) **********
