diff --git a/Tooling b/Tooling
index bd54324c0c2234a9633dab2ea5fdb7592bcc2feb..18a1cbc81bdf847a5d288cce58e4fd100ba3733c 160000
--- a/Tooling
+++ b/Tooling
@@ -1 +1 @@
-Subproject commit bd54324c0c2234a9633dab2ea5fdb7592bcc2feb
+Subproject commit 18a1cbc81bdf847a5d288cce58e4fd100ba3733c
diff --git a/examples/BusChargingDepot/runme.py b/examples/BusChargingDepot/runme.py
index 392006b94275bca3914bdfc471fea34b405cce03..8d88fba458cd6c51d926c9f7e724192102fbe242 100644
--- a/examples/BusChargingDepot/runme.py
+++ b/examples/BusChargingDepot/runme.py
@@ -35,12 +35,18 @@ t_start = pd.Timestamp("2019-05-10 00:00:00")
 dynamic = TrivialDynamic([60 for i in range(24 * 60 - 1)])
 
 input_profile_dict = {
-    "bus_1_demand": {"type": "elec_demand", "file": "bus_1_demand.csv"},
-    "bus_2_demand": {"type": "elec_demand", "file": "bus_2_demand.csv"},
-    "bus_1_recuperation": {"type": "elec_demand", "file": "bus_1_recuperation.csv"},
-    "bus_2_recuperation": {"type": "elec_demand", "file": "bus_2_recuperation.csv"},
-    "bus_1_connected": {"type": "elec_demand", "file": "bus_1_connected.csv"},
-    "bus_2_connected": {"type": "elec_demand", "file": "bus_2_connected.csv"},
+    "bus_1_demand": {"type": "electricity_demand", "file": "bus_1_demand.csv"},
+    "bus_2_demand": {"type": "electricity_demand", "file": "bus_2_demand.csv"},
+    "bus_1_recuperation": {
+        "type": "electricity_demand",
+        "file": "bus_1_recuperation.csv",
+    },
+    "bus_2_recuperation": {
+        "type": "electricity_demand",
+        "file": "bus_2_recuperation.csv",
+    },
+    "bus_1_connected": {"type": "electricity_demand", "file": "bus_1_connected.csv"},
+    "bus_2_connected": {"type": "electricity_demand", "file": "bus_2_connected.csv"},
 }
 
 input_profiles = process_input_profiles(input_profile_dict, t_start, dynamic)
diff --git a/examples/BusChargingHPC/runme.py b/examples/BusChargingHPC/runme.py
index 9fa4feb7da76cb5697ad7e1be56aac94525b2d59..788897f1f99f4c6e3463de012beba3f20a05ae53 100644
--- a/examples/BusChargingHPC/runme.py
+++ b/examples/BusChargingHPC/runme.py
@@ -35,12 +35,18 @@ t_start = pd.Timestamp("2019-05-10 00:00:00")
 dynamic = TrivialDynamic([60 for i in range(24 * 60 - 1)])
 
 input_profile_dict = {
-    "bus_1_demand": {"type": "elec_demand", "file": "bus_1_demand.csv"},
-    "bus_2_demand": {"type": "elec_demand", "file": "bus_2_demand.csv"},
-    "bus_1_recuperation": {"type": "elec_demand", "file": "bus_1_recuperation.csv"},
-    "bus_2_recuperation": {"type": "elec_demand", "file": "bus_2_recuperation.csv"},
-    "bus_1_connected": {"type": "elec_demand", "file": "bus_1_connected.csv"},
-    "bus_2_connected": {"type": "elec_demand", "file": "bus_2_connected.csv"},
+    "bus_1_demand": {"type": "electricity_demand", "file": "bus_1_demand.csv"},
+    "bus_2_demand": {"type": "electricity_demand", "file": "bus_2_demand.csv"},
+    "bus_1_recuperation": {
+        "type": "electricity_demand",
+        "file": "bus_1_recuperation.csv",
+    },
+    "bus_2_recuperation": {
+        "type": "electricity_demand",
+        "file": "bus_2_recuperation.csv",
+    },
+    "bus_1_connected": {"type": "electricity_demand", "file": "bus_1_connected.csv"},
+    "bus_2_connected": {"type": "electricity_demand", "file": "bus_2_connected.csv"},
 }
 
 input_profiles = process_input_profiles(input_profile_dict, t_start, dynamic)
diff --git a/examples/BusChargingIMC/runme.py b/examples/BusChargingIMC/runme.py
index 501a02b7d3f1a69f4f0695dc2659d0fdcc7319ef..13b73a45f717748dfcc8863f31f80d8627fccf5e 100644
--- a/examples/BusChargingIMC/runme.py
+++ b/examples/BusChargingIMC/runme.py
@@ -35,12 +35,18 @@ t_start = pd.Timestamp("2019-05-10 00:00:00")
 dynamic = TrivialDynamic([60 for i in range(24 * 60 - 1)])
 
 input_profile_dict = {
-    "bus_1_demand": {"type": "elec_demand", "file": "bus_1_demand.csv"},
-    "bus_2_demand": {"type": "elec_demand", "file": "bus_2_demand.csv"},
-    "bus_1_recuperation": {"type": "elec_demand", "file": "bus_1_recuperation.csv"},
-    "bus_2_recuperation": {"type": "elec_demand", "file": "bus_2_recuperation.csv"},
-    "bus_1_connected": {"type": "elec_demand", "file": "bus_1_connected.csv"},
-    "bus_2_connected": {"type": "elec_demand", "file": "bus_2_connected.csv"},
+    "bus_1_demand": {"type": "electricity_demand", "file": "bus_1_demand.csv"},
+    "bus_2_demand": {"type": "electricity_demand", "file": "bus_2_demand.csv"},
+    "bus_1_recuperation": {
+        "type": "electricity_demand",
+        "file": "bus_1_recuperation.csv",
+    },
+    "bus_2_recuperation": {
+        "type": "electricity_demand",
+        "file": "bus_2_recuperation.csv",
+    },
+    "bus_1_connected": {"type": "electricity_demand", "file": "bus_1_connected.csv"},
+    "bus_2_connected": {"type": "electricity_demand", "file": "bus_2_connected.csv"},
 }
 
 input_profiles = process_input_profiles(input_profile_dict, t_start, dynamic)
diff --git a/examples/aggregation/runme.py b/examples/aggregation/runme.py
index e17c7d2d9fed057fe68cdbf0bd2889d0fadd4f0e..5951b4930db02d2a42736e9899e21ffffbfcba39 100644
--- a/examples/aggregation/runme.py
+++ b/examples/aggregation/runme.py
@@ -37,7 +37,10 @@ dynamic = TrivialDynamic([3600 for i in range(240)])
 input_profile_dict = {
     "irradiance": {"type": "irradiance", "file": "irradiance.csv"},
     "temperature": {"type": "air_temperature", "file": "temperature.csv"},
-    "electric_demand": {"type": "elec_demand", "generate": {"yearly_demand": 3000}},
+    "electricity_demand": {
+        "type": "electricity_demand",
+        "generate": {"yearly_demand": 3000},
+    },
 }
 
 input_profiles = process_input_profiles(input_profile_dict, t_start, dynamic)
@@ -81,24 +84,24 @@ temperature_2 = pd.Series(
 aggregated_temperature = Profile(
     {0: temperature_1, 1: temperature_2}, aggregated_dynamic
 )
-electric_demand_1 = pd.Series(
+electricity_demand_1 = pd.Series(
     [
-        input_profiles["electric_demand"].values.loc[0:11].sum() / 12,
-        input_profiles["electric_demand"].values.loc[12],
-        input_profiles["electric_demand"].values.loc[13:23].sum() / 11,
+        input_profiles["electricity_demand"].values.loc[0:11].sum() / 12,
+        input_profiles["electricity_demand"].values.loc[12],
+        input_profiles["electricity_demand"].values.loc[13:23].sum() / 11,
     ],
     index=[0, 12, 13],
 )
-electric_demand_2 = pd.Series(
+electricity_demand_2 = pd.Series(
     [
-        input_profiles["electric_demand"].values.loc[24:30].sum() / 7,
-        input_profiles["electric_demand"].values.loc[31:38].sum() / 8,
-        input_profiles["electric_demand"].values.loc[49:47].sum() / 9,
+        input_profiles["electricity_demand"].values.loc[24:30].sum() / 7,
+        input_profiles["electricity_demand"].values.loc[31:38].sum() / 8,
+        input_profiles["electricity_demand"].values.loc[49:47].sum() / 9,
     ],
     index=[0, 7, 15],
 )
-aggregated_electric_demand = Profile(
-    {0: electric_demand_1, 1: electric_demand_2}, aggregated_dynamic
+aggregated_electricity_demand = Profile(
+    {0: electricity_demand_1, 1: electricity_demand_2}, aggregated_dynamic
 )
 
 with open("prosumer.json") as f:
@@ -106,7 +109,9 @@ with open("prosumer.json") as f:
 
 prosumer_json["components"]["pv"]["irradiance"] = aggregated_irradiance
 prosumer_json["components"]["pv"]["temperature"] = aggregated_temperature
-prosumer_json["components"]["consumption"]["consumption"] = aggregated_electric_demand
+prosumer_json["components"]["consumption"][
+    "consumption"
+] = aggregated_electricity_demand
 
 prosumer = Prosumer("my_prosumer", prosumer_json, aggregated_dynamic)
 
diff --git a/examples/complex_prosumer/prosumer.json b/examples/complex_prosumer/prosumer.json
index 2c0d9cc41e50a4b9752348494011a4e74edcacf1..9590f883e03d334a081fff3529887afc2b44cb1b 100644
--- a/examples/complex_prosumer/prosumer.json
+++ b/examples/complex_prosumer/prosumer.json
@@ -24,12 +24,12 @@
             "min_capacity": 10.0,
             "max_capacity": 10.0
         },
-        "electric_grid": {
+        "electrical_grid": {
             "type": "ElectricalGrid",
             "price": 0.3046,
             "injection_price": 0.0793
         },
-        "electric_consumption": {
+        "electrical_consumption": {
             "type": "ElectricalConsumption"
         },
         "heat_pump": {
@@ -79,13 +79,13 @@
         {
             "from": "inverter_pv",
             "output": 1,
-            "to": "electric_grid",
+            "to": "electrical_grid",
             "input": 1
         },
         {
             "from": "inverter_pv",
             "output": 1,
-            "to": "electric_consumption",
+            "to": "electrical_consumption",
             "input": 1
         },
         {
@@ -109,13 +109,13 @@
         {
             "from": "inverter_battery",
             "output": 2,
-            "to": "electric_grid",
+            "to": "electrical_grid",
             "input": 1
         },
         {
             "from": "inverter_battery",
             "output": 2,
-            "to": "electric_consumption",
+            "to": "electrical_consumption",
             "input": 1
         },
         {
@@ -125,19 +125,19 @@
             "input": 1
         },
         {
-            "from": "electric_grid",
+            "from": "electrical_grid",
             "output": 1,
             "to": "inverter_battery",
             "input": 2
         },
         {
-            "from": "electric_grid",
+            "from": "electrical_grid",
             "output": 1,
-            "to": "electric_consumption",
+            "to": "electrical_consumption",
             "input": 1
         },
         {
-            "from": "electric_grid",
+            "from": "electrical_grid",
             "output": 1,
             "to": "heat_pump",
             "input": 1
diff --git a/examples/complex_prosumer/runme.py b/examples/complex_prosumer/runme.py
index 0a9bcaa31671235860a2736b60c7cc7c4791b3c2..c912747524c7ae8bec4fe7388b2410d82402f707 100644
--- a/examples/complex_prosumer/runme.py
+++ b/examples/complex_prosumer/runme.py
@@ -37,7 +37,10 @@ dynamic = TrivialDynamic([3600 for i in range(24)])
 input_profile_dict = {
     "irradiance": {"type": "irradiance", "file": "irradiance.csv"},
     "temperature": {"type": "air_temperature", "file": "temperature.csv"},
-    "electric_demand": {"type": "elec_demand", "generate": {"yearly_demand": 3000}},
+    "electricity_demand": {
+        "type": "electricity_demand",
+        "generate": {"yearly_demand": 3000},
+    },
     "heat_demand": {
         "type": "therm_demand",
         "generate": {"yearly_demand": 6000, "temperature": "temperature"},
@@ -55,8 +58,8 @@ with open("prosumer.json") as f:
 
 prosumer_json["components"]["pv"]["irradiance"] = input_profiles["irradiance"]
 prosumer_json["components"]["pv"]["temperature"] = input_profiles["temperature"]
-prosumer_json["components"]["electric_consumption"]["consumption"] = input_profiles[
-    "electric_demand"
+prosumer_json["components"]["electrical_consumption"]["consumption"] = input_profiles[
+    "electricity_demand"
 ]
 prosumer_json["components"]["heat_pump"]["temperature"] = input_profiles["temperature"]
 prosumer_json["components"]["heat_consumption"]["consumption"] = input_profiles[
diff --git a/examples/district/runme.py b/examples/district/runme.py
index deadd8a527b28af57302052e1e1c6906cac685bd..da491aa8adf5fa715f0a6ee5d842d9ddc6a82e15 100644
--- a/examples/district/runme.py
+++ b/examples/district/runme.py
@@ -38,7 +38,10 @@ dynamic = TrivialDynamic([3600 for i in range(24)])
 input_profile_dict = {
     "irradiance": {"type": "irradiance", "file": "irradiance.csv"},
     "temperature": {"type": "air_temperature", "file": "temperature.csv"},
-    "electric_demand": {"type": "elec_demand", "generate": {"yearly_demand": 3000}},
+    "electricity_demand": {
+        "type": "electricity_demand",
+        "generate": {"yearly_demand": 3000},
+    },
     "electricity_price": {"type": "electricity_price", "file": "electricity_price.csv"},
 }
 
@@ -57,7 +60,7 @@ for prosumer_name, prosumer_path in prosumer_paths.items():
     prosumer_json["components"]["pv"]["irradiance"] = input_profiles["irradiance"]
     prosumer_json["components"]["pv"]["temperature"] = input_profiles["temperature"]
     prosumer_json["components"]["consumption"]["consumption"] = input_profiles[
-        "electric_demand"
+        "electricity_demand"
     ]
 
     prosumers[prosumer_name] = Prosumer(prosumer_name, prosumer_json, dynamic)
diff --git a/examples/simple_prosumer/runme.py b/examples/simple_prosumer/runme.py
index 556a1f70d5037216eb90b70fe5e8271647633c93..43e2cf46e64397591404eef9d3118d309ffee815 100644
--- a/examples/simple_prosumer/runme.py
+++ b/examples/simple_prosumer/runme.py
@@ -37,7 +37,10 @@ dynamic = TrivialDynamic([3600 for i in range(24)])
 input_profile_dict = {
     "irradiance": {"type": "irradiance", "file": "irradiance.csv"},
     "temperature": {"type": "air_temperature", "file": "temperature.csv"},
-    "electric_demand": {"type": "elec_demand", "generate": {"yearly_demand": 3000}},
+    "electricity_demand": {
+        "type": "electricity_demand",
+        "generate": {"yearly_demand": 3000},
+    },
 }
 
 input_profiles = process_input_profiles(input_profile_dict, t_start, dynamic)
@@ -48,7 +51,7 @@ with open("prosumer.json") as f:
 prosumer_json["components"]["pv"]["irradiance"] = input_profiles["irradiance"]
 prosumer_json["components"]["pv"]["temperature"] = input_profiles["temperature"]
 prosumer_json["components"]["consumption"]["consumption"] = input_profiles[
-    "electric_demand"
+    "electricity_demand"
 ]
 
 prosumer = Prosumer("my_prosumer", prosumer_json, dynamic)