diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/AbstractResourcePatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/AbstractResourcePatcher.kt
index daa873f17e4dba97b896fd455121a0e1c01e7b81..adb5c1468130069524221de25354787e045c9b9e 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/AbstractResourcePatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/AbstractResourcePatcher.kt
@@ -28,12 +28,12 @@ abstract class AbstractResourcePatcher(
         when (resource) {
             is Deployment -> {
                 resource.spec.template.spec.containers.filter { it.name == container }.forEach {
-                    setLimits(it, value)
+                    setValues(it, value)
                 }
             }
             is StatefulSet -> {
                 resource.spec.template.spec.containers.filter { it.name == container }.forEach {
-                    setLimits(it, value)
+                    setValues(it, value)
                 }
             }
             else -> {
@@ -43,7 +43,7 @@ abstract class AbstractResourcePatcher(
         return resource
     }
 
-    private fun setLimits(container: Container, value: String) {
+    private fun setValues(container: Container, value: String) {
         val quantity = if (this.format != null || this.factor != null) {
             val amountAsInt = value.toIntOrNull()?.times(this.factor ?: 1)
             if (amountAsInt == null) {
@@ -56,8 +56,8 @@ abstract class AbstractResourcePatcher(
             Quantity(value)
         }
 
-        setLimits(container, quantity)
+        setValues(container, quantity)
     }
 
-    abstract fun setLimits(container: Container, quantity: Quantity)
+    abstract fun setValues(container: Container, quantity: Quantity)
 }
\ No newline at end of file
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/PatcherFactory.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/PatcherFactory.kt
index 69a2528bbcd2a39d535d77571f7ca520b8c81488..26e76ccfabbb773e45bf80fd09612473c246c5e4 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/PatcherFactory.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/PatcherFactory.kt
@@ -12,86 +12,76 @@ class PatcherFactory {
          * Create patcher based on the given [PatcherDefinition] and
          * the list of KubernetesResources.
          *
-         * @param patcherDefinition The [PatcherDefinition] for which are
-         *     [Patcher] should be created.
-         * @param k8sResources List of all available Kubernetes resources.
-         *     This is a list of pairs<String, KubernetesResource>:
-         *     The frist corresponds to the filename where the resource is defined.
-         *     The second corresponds to the concrete [KubernetesResource] that should be patched.
+         * @param patcher The [PatcherDefinition] for which are [Patcher] should be created.
          * @return The created [Patcher].
          * @throws IllegalArgumentException if no patcher can be created.
          */
-        fun createPatcher(
-            patcherDefinition: PatcherDefinition,
-        ): Patcher {
-
-            return try {
-                when (patcherDefinition.type) {
+        fun createPatcher(patcher: PatcherDefinition): Patcher {
+            return when (patcher.type) {
                     "ReplicaPatcher" -> ReplicaPatcher(
                     )
                     "NumNestedGroupsLoadGeneratorReplicaPatcher" -> NumNestedGroupsLoadGeneratorReplicaPatcher(
-                        loadGenMaxRecords = patcherDefinition.properties["loadGenMaxRecords"]!!,
-                        numSensors = patcherDefinition.properties["numSensors"]!!
+                        loadGenMaxRecords = patcher.properties["loadGenMaxRecords"] ?: throwInvalid(patcher),
+                        numSensors = patcher.properties["numSensors"] ?: throwInvalid(patcher)
                     )
                     "NumSensorsLoadGeneratorReplicaPatcher" -> NumSensorsLoadGeneratorReplicaPatcher(
-                        loadGenMaxRecords = patcherDefinition.properties["loadGenMaxRecords"]!!
+                        loadGenMaxRecords = patcher.properties["loadGenMaxRecords"] ?: throwInvalid(patcher)
                     )
                     "DataVolumeLoadGeneratorReplicaPatcher" -> DataVolumeLoadGeneratorReplicaPatcher(
-                        maxVolume = patcherDefinition.properties["maxVolume"]!!.toInt(),
-                        container = patcherDefinition.properties["container"]!!,
-                        variableName = patcherDefinition.properties["variableName"]!!
+                        maxVolume = (patcher.properties["maxVolume"] ?: throwInvalid(patcher)).toInt(),
+                        container = patcher.properties["container"] ?: throwInvalid(patcher),
+                        variableName = patcher.properties["variableName"] ?: throwInvalid(patcher)
                     )
                     "EnvVarPatcher" -> EnvVarPatcher(
-                        container = patcherDefinition.properties["container"]!!,
-                        variableName = patcherDefinition.properties["variableName"]!!
+                        container = patcher.properties["container"] ?: throwInvalid(patcher),
+                        variableName = patcher.properties["variableName"] ?: throwInvalid(patcher)
                     )
                     "NodeSelectorPatcher" -> NodeSelectorPatcher(
-                        variableName = patcherDefinition.properties["variableName"]!!
+                        variableName = patcher.properties["variableName"] ?: throwInvalid(patcher)
                     )
                     "ResourceLimitPatcher" -> ResourceLimitPatcher(
-                        container = patcherDefinition.properties["container"]!!,
-                        limitedResource = patcherDefinition.properties["limitedResource"]!!,
-                        format = patcherDefinition.properties["format"],
-                        factor = patcherDefinition.properties["factor"]?.toInt()
+                        container = patcher.properties["container"] ?: throwInvalid(patcher),
+                        limitedResource = patcher.properties["limitedResource"] ?: throwInvalid(patcher),
+                        format = patcher.properties["format"],
+                        factor = patcher.properties["factor"]?.toInt()
                     )
                     "ResourceRequestPatcher" -> ResourceRequestPatcher(
-                        container = patcherDefinition.properties["container"]!!,
-                        requestedResource = patcherDefinition.properties["requestedResource"]!!,
-                        format = patcherDefinition.properties["format"],
-                        factor = patcherDefinition.properties["factor"]?.toInt()
+                        container = patcher.properties["container"] ?: throwInvalid(patcher),
+                        requestedResource = patcher.properties["requestedResource"] ?: throwInvalid(patcher),
+                        format = patcher.properties["format"],
+                        factor = patcher.properties["factor"]?.toInt()
                     )
                     "SchedulerNamePatcher" -> SchedulerNamePatcher()
                     "LabelPatcher" -> LabelPatcher(
-                        variableName = patcherDefinition.properties["variableName"]!!
+                        variableName = patcher.properties["variableName"] ?: throwInvalid(patcher)
                     )
                     "MatchLabelPatcher" -> MatchLabelPatcher(
-                        variableName = patcherDefinition.properties["variableName"]!!
+                        variableName = patcher.properties["variableName"] ?: throwInvalid(patcher)
                     )
                     "TemplateLabelPatcher" -> TemplateLabelPatcher(
-                        variableName = patcherDefinition.properties["variableName"]!!
+                        variableName = patcher.properties["variableName"] ?: throwInvalid(patcher)
                     )
                     "ImagePatcher" -> ImagePatcher(
-                        container = patcherDefinition.properties["container"]!!
+                        container = patcher.properties["container"] ?: throwInvalid(patcher)
                     )
                     "ConfigMapYamlPatcher" -> ConfigMapYamlPatcher(
-                        fileName = patcherDefinition.properties["fileName"]!!,
-                        variableName = patcherDefinition.properties["variableName"]!!
+                        fileName = patcher.properties["fileName"] ?: throwInvalid(patcher),
+                        variableName = patcher.properties["variableName"] ?: throwInvalid(patcher)
                     )
                     "NamePatcher" -> NamePatcher()
                     "ServiceSelectorPatcher" -> ServiceSelectorPatcher(
-                        variableName = patcherDefinition.properties["label"]!!
+                        variableName = patcher.properties["label"] ?: throwInvalid(patcher)
                     )
                     "VolumesConfigMapPatcher" -> VolumesConfigMapPatcher(
-                        volumeName = patcherDefinition.properties["volumeName"]!!
+                        volumeName = patcher.properties["volumeName"] ?: throwInvalid(patcher)
                     )
-                    else -> throw InvalidPatcherConfigurationException("Patcher type ${patcherDefinition.type} not found.")
+                    else -> throw InvalidPatcherConfigurationException("Patcher type ${patcher.type} not found.")
                 }
-            } catch (e: NullPointerException) {
-                throw InvalidPatcherConfigurationException(
-                    "Could not create patcher with type ${patcherDefinition.type}" +
-                            " Probably a required patcher argument was not specified.", e
-                )
-            }
+        }
+
+        private fun throwInvalid(patcher: PatcherDefinition): String {
+            throw InvalidPatcherConfigurationException("Could not create patcher with type ${patcher.type}. Probably a required patcher argument was not specified.")
         }
     }
+
 }
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ResourceLimitPatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ResourceLimitPatcher.kt
index c1ae22f00a8fde16aedef6b70ea098cbdd895dd4..b2085ed80577a11f2e3582689ad39bab3577ecdc 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ResourceLimitPatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ResourceLimitPatcher.kt
@@ -24,7 +24,7 @@ class ResourceLimitPatcher(
     format = format,
     factor = factor
 ) {
-    override fun setLimits(container: Container, quantity: Quantity) {
+    override fun setValues(container: Container, quantity: Quantity) {
         when {
             container.resources == null -> {
                 val resource = ResourceRequirements()
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ResourceRequestPatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ResourceRequestPatcher.kt
index a6b037ddeb3a1fb3d7aa2c1f2579cada81922d9a..3441ef2a9596aa781a9aa9ac2f064136f65f6a0e 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ResourceRequestPatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ResourceRequestPatcher.kt
@@ -4,7 +4,6 @@ import io.fabric8.kubernetes.api.model.Container
 import io.fabric8.kubernetes.api.model.Quantity
 import io.fabric8.kubernetes.api.model.ResourceRequirements
 
-
 /**
  * The Resource request [Patcher] sets resource requests for Deployments and StatefulSets.
  *
@@ -25,7 +24,7 @@ class ResourceRequestPatcher(
     factor = factor
 ) {
 
-    override fun setLimits(container: Container, quantity: Quantity) {
+    override fun setValues(container: Container, quantity: Quantity) {
         when {
             container.resources == null -> {
                 val resource = ResourceRequirements()