diff --git a/Model_Library b/Model_Library
index c02cc107f706aeda8c1ce9a195d40d94c1cd50d5..61ae4e9cb13a58b7eb5a39aeeb41899c4d4e9cd9 160000
--- a/Model_Library
+++ b/Model_Library
@@ -1 +1 @@
-Subproject commit c02cc107f706aeda8c1ce9a195d40d94c1cd50d5
+Subproject commit 61ae4e9cb13a58b7eb5a39aeeb41899c4d4e9cd9
diff --git a/input_files/models/prosumer_models/building_types_aachen_2022/running_info_2022.csv b/input_files/models/prosumer_models/building_types_aachen_2022/running_info_2022.csv
new file mode 100644
index 0000000000000000000000000000000000000000..1be6fa3a48cc659e2d0a5d3d2f62d9c61e76c627
--- /dev/null
+++ b/input_files/models/prosumer_models/building_types_aachen_2022/running_info_2022.csv
@@ -0,0 +1,420 @@
+,ID_building,Electricity_demand,Thermal_demand,HotWater_demand,Profile_el,Profile_th,Building_type
+0,A_0,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+1,A_15,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+2,A_9,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+3,A_27,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+4,A_21,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+5,L_0,4160.278216,11840.436909999999,468.94502570000003,l2,GGB,0.0
+6,A_5,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+7,A_19,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+8,L_0_PV8.0,4160.278216,11840.436909999999,468.94502570000003,l2,GGB,0.0
+9,A_14,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+10,AL_1,13046.64675,45043.597839999995,2658.4586719999998,h0+l2,GMF,0.0
+11,A_0_PV28.0_STR,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+12,G_1,6694.2224719999995,19832.34201,2013.477135,g2,GGA,0.0
+13,A_13,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+14,A_27_PV9.0,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+15,A_26_PV16.0_STR,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+16,A_21_PV28.0_STR,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+17,AC_0,8095.942719,45944.03015,1391.120775,h0+g1,GMF,0.0
+18,D_0,4108.428457999999,11693.41854,74.68525454,l0,GMK,0.0
+19,A_5_PV28.0_STR,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+20,A_21_PV28.0,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+21,N_0_PV8.0_STR,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+22,A_0_PV9.0_HP,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+23,E_0,9979.480577,27156.03132,1075.9052060000001,g4,GHA,0.0
+24,A_5_STR,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+25,A_27_PV5.0,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+26,A_14_PV27.0,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+27,A_21_PV10.0,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+28,A_5_PV4.0,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+29,A_24,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+30,C_0,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+31,A_27_PV4.0,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+32,A_15_PV4.0,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+33,A_16_PV27.0,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+34,A_15_PV1.0,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+35,G_1_PV8.0,6694.2224719999995,19832.34201,2013.477135,g2,GGA,0.0
+36,L_0_PV7.0,4160.278216,11840.436909999999,468.94502570000003,l2,GGB,0.0
+37,A_21_PV10.0_STR,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+38,A_0_PV8.0,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+39,A_16,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+40,A_5_PV8.0,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+41,A_11,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+42,A_4,54611.4143,219830.893,15824.812909999999,h0,MFH,1.0
+43,A_0_PV9.0,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+44,E_0_PV8.0,9979.480577,27156.03132,1075.9052060000001,g4,GHA,0.0
+45,A_22,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+46,A_21_STR,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+47,AC_0_PV30.0,7450.526531999999,45015.357110000004,1084.7415349999999,h0+g1,GMF,0.0
+48,A_19_PV8.0,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+49,A_16_STR,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+50,A_27_PV9.0_STR,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+51,N_0,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+52,A_14_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+53,A_21_PV28.0_HP_STR,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+54,A_13_PV9.0,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+55,A_22_PV9.0,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+56,AC_0_PV8.0,13259.27221,53373.414469999996,3842.154699,h0+g1,GMF,0.0
+57,A_21_PV4.0,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+58,A_4_PV27.0,54611.4143,219830.893,15824.812909999999,h0,MFH,1.0
+59,A_24_PV9.0,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+60,A_4_STR,54611.4143,219830.893,15824.812909999999,h0,MFH,1.0
+61,A_11_STR,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+62,G_1_PV7.0,6694.2224719999995,19832.34201,2013.477135,g2,GGA,0.0
+63,A_14_PV84.0_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+64,A_2,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+65,Q_0,4343.104444,30488.79776,1389.32441,g1,GKO,0.0
+66,U_0,483.90903499999996,16624.732219999998,3890.5540020000003,g3,GKO,0.0
+67,A_0_PV5.0,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+68,S_0,19952.060390000002,27086.95137,12.81716942,g6,GBD,0.0
+69,A_13_PV10.0_STR,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+70,AL_3,3247.550374,13072.576640000001,941.0464413999999,h0+l2,GMF,0.0
+71,A_14_PV16.0,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+72,A_13_PV4.0,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+73,L_1,73797.95126,210034.0267,8318.477840000001,l2,GGB,0.0
+74,D_0_PV30.0,4108.428457999999,11693.41854,74.68525454,l0,GMK,0.0
+75,A_27_STR,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+76,S_3,50787.86649,68949.69455,32.62603843,g6,GBD,0.0
+77,S_1,152363.5995,206849.0837,97.87811529999999,g6,GBD,0.0
+78,A_13_PV5.0_STR,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+79,A_21_PV9.0_STR,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+80,AL_2,30682.396569999997,105931.0916,6252.018991,h0+l2,GMF,0.0
+81,A_27_PV5.0_STR,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+82,A_13_PV5.0,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+83,A_0_PV8.0_STR,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+84,C_0_PV8.0,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+85,A_26_PV27.0,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+86,A_0_PV4.0,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+87,A_21_PV9.0,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+88,A_2_PV9.0,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+89,A_13_STR,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+90,L_0_PV30.0,4160.278216,11840.436909999999,468.94502570000003,l2,GGB,0.0
+91,A_19_PV4.0_STR,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+92,A_2_PV10.0,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+93,A_27_PV1.0,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+94,A_14_PV4.0,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+95,A_21_PV5.0,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+96,A_26,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+97,A_5_PV10.0_STR,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+98,R_0,8300.523372,43577.7477,1985.766348,g6,GBD,0.0
+99,A_14_PV8.0,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+100,A_9_STR,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+101,A_21_PV28.0_HP,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+102,R_0_PV8.0,8300.523372,43577.7477,1985.766348,g6,GBD,0.0
+103,A_0_STR,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+104,A_13_PV16.0,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+105,A_2_PV16.0,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+106,V_2,20032.90823,43132.10587,43132.10587,g4,GBD,0.0
+107,I_0,7053.627337999999,20075.602919999998,979.6662242000001,g4,GWA,0.0
+108,A_22_PV10.0,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+109,A_0_PV9.0_STR,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+110,A_0_PV1.0,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+111,A_19_PV9.0,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+112,N_0_PV8.0,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+113,A_19_PV10.0,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+114,A_24_STR,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+115,A_14_PV10.0,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+116,A_26_PV28.0,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+117,Q_2,37796.78469,265335.2089,12090.88942,g1,GKO,0.0
+118,A_2_STR,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+119,A_8,82147.63936,330674.2582,23804.01681,h0,MFH,1.0
+120,A_22_STR,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+121,A_10_PV152.0_HP_STR,438960.5107,1766976.415,127198.0967,h0,MFH,1.0
+122,A_23,112411.8281,452498.6737,32573.7059,h0,MFH,1.0
+123,A_8_STR,82147.63936,330674.2582,23804.01681,h0,MFH,1.0
+124,A_6_STR,563582.8907,2268627.0209999997,163310.0684,h0,MFH,1.0
+125,A_3_STR,311665.3228,1254566.781,90311.62236000001,h0,MFH,1.0
+126,A_7_STR,233517.4791,939993.1611,67666.63098,h0,MFH,1.0
+127,A_15_PV9.0,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+128,C_0_PV30.0,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+129,N_0_PV7.0,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+130,A_10,438960.5107,1766976.415,127198.0967,h0,MFH,1.0
+131,A_12,158691.1773,638789.961,45984.126639999995,h0,MFH,1.0
+132,A_10_STR,438960.5107,1766976.415,127198.0967,h0,MFH,1.0
+133,A_25,194011.9042,780968.79,56219.054679999994,h0,MFH,1.0
+134,A_23_STR,112411.8281,452498.6737,32573.7059,h0,MFH,1.0
+135,A_24_PV4.0,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+136,C_1_STR,130651.9017,1000555.892,3923.7146299999995,g1,GBD,0.0
+137,C_1,130651.9017,1000555.892,3923.7146299999995,g1,GBD,0.0
+138,C_0_PV678.0_HP_STR,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+139,A_4_PV80.0_STR,54611.4143,219830.893,15824.812909999999,h0,MFH,1.0
+140,E_1,354525.7608,964730.8385,38222.0406,g4,GHA,0.0
+141,D_0_PV8.0,4108.428457999999,11693.41854,74.68525454,l0,GMK,0.0
+142,AC_1,340110.4779,1369068.9209999999,98554.20797,h0+g1,GMF,0.0
+143,N_0_STR,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+144,N_1_STR,960869.0118,1696825.471,75955.45868,g1,GBD,0.0
+145,N_1,960869.0118,1696825.471,75955.45868,g1,GBD,0.0
+146,I_1,281284.7303,800575.4034,39067.15459,g4,GWA,0.0
+147,A_7,233517.4791,939993.1611,67666.63098,h0,MFH,1.0
+148,C_0_PV25.0,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+149,A_15_PV9.0_HP,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+150,A_2_PV84.0_STR,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+151,A_5_PV9.0,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+152,G_1_PV112.0_STR,6694.2224719999995,19832.34201,2013.477135,g2,GGA,0.0
+153,A_11_PV27.0_STR,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+154,A_0_PV28.0,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+155,A_14_PV9.0,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+156,A_14_PV10.0_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+157,G_0,87925.74809,260489.3271,26446.16071,g2,GGA,0.0
+158,A_19_PV5.0_STR,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+159,A_5_PV5.0,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+160,A_27_PV4.0_STR,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+161,A_19_PV4.0,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+162,A_5_PV8.0_STR,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+163,A_19_PV28.0,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+164,A_5_PV10.0,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+165,A_15_PV4.0_STR,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+166,A_24_PV16.0_STR,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+167,A_19_PV16.0,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+168,A_19_STR,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+169,A_5_PV16.0,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+170,A_14_PV9.0_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+171,A_26_PV28.0_STR,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+172,A_19_PV16.0_STR,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+173,AC_0_PV7.0,7450.526531999999,45015.357110000004,1084.7415349999999,h0+g1,GMF,0.0
+174,A_11_PV9.0,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+175,A_13_PV10.0,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+176,A_15_STR,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+177,A_2_PV10.0_STR,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+178,A_19_PV28.0_STR,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+179,AL_0,5557.334447,19186.71845,1132.393958,h0+l2,GMF,0.0
+180,A_22_PV5.0,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+181,U_2,2855.316914,98094.6328,22956.30758,g3,GKO,0.0
+182,A_21_PV4.0_STR,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+183,A_19_PV5.0,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+184,A_13_PV9.0_STR,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+185,R_0_PV30.0,8300.523372,43577.7477,1985.766348,g6,GBD,0.0
+186,A_0_PV5.0_STR,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+187,A_9_PV16.0,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+188,A_13_PV28.0_STR,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+189,A_19_PV28.0_HP_STR,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+190,A_13_PV4.0_STR,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+191,A_22_PV8.0,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+192,A_18,93997.95422,378376.1047,27237.8963,h0,MFH,1.0
+193,A_18_STR,93997.95422,378376.1047,27237.8963,h0,MFH,1.0
+194,A_13_PV28.0_HP,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+195,A_13_PV28.0,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+196,A_14_PV27.0_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+197,A_19_PV8.0_STR,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+198,A_0_PV28.0_HP_STR,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+199,A_3_PV80.0_STR,311665.3228,1254566.781,90311.62236000001,h0,MFH,1.0
+200,A_3,311665.3228,1254566.781,90311.62236000001,h0,MFH,1.0
+201,A_13_PV28.0_HP_STR,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+202,A_22_PV9.0_STR,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+203,A_9_PV9.0_STR,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+204,A_5_PV4.0_STR,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+205,A_15_PV9.0_STR,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+206,A_22_PV8.0_STR,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+207,A_5_PV5.0_STR,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+208,A_5_PV28.0,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+209,E_0_PV30.0,9979.480577,27156.03132,1075.9052060000001,g4,GHA,0.0
+210,AC_0_PV8.0_HP_STR,13259.27221,53373.414469999996,3842.154699,h0+g1,GMF,0.0
+211,A_5_PV16.0_STR,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+212,A_13_PV8.0,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+213,U_0_PV73.0,483.90903499999996,16624.732219999998,3890.5540020000003,g3,GKO,0.0
+214,A_19_PV9.0_STR,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+215,A_0_PV10.0_STR,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+216,A_22_PV84.0_STR,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+217,A_0_PV10.0,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+218,A_26_PV28.0_HP,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+219,A_19_PV10.0_HP,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+220,A_5_PV9.0_STR,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+221,A_14_PV5.0,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+222,A_25_STR,5969.597052,24029.80892,1729.8170670000002,h0,MFH,1.0
+223,A_11_PV9.0_STR,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+224,A_22_PV4.0,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+225,A_26_STR,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+226,A_1,134909.9709,543061.9178,39093.01888,h0,MFH,1.0
+227,A_0_PV28.0_HP,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+228,A_27_PV9.0_HP,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+229,L_0_PV30.0_STR,4160.278216,11840.436909999999,468.94502570000003,l2,GGB,0.0
+230,A_13_PV16.0_STR,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+231,A_5_PV27.0_STR,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+232,C_0_PV7.0,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+233,A_11_PV152.0_STR_HP,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+234,A_11_PV80.0_STR,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+235,AD_2,10028.5575,35875.74402,1871.160743,h0+l1,GMF,0.0
+236,A_15_PV4.0_HP,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+237,Q_0_PV8.0,4343.104444,30488.79776,1389.32441,g1,GKO,0.0
+238,N_0_PV30.0,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+239,A_0_PV4.0_STR,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+240,A_2_PV9.0_STR,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+241,A_9_PV10.0_STR,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+242,A_1_STR,134909.9709,543061.9178,39093.01888,h0,MFH,1.0
+243,A_21_PV5.0_STR,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+244,A_2_PV4.0_STR,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+245,A_9_PV10.0,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+246,U_1,13566.602219999999,466081.6655,109073.3893,g3,GKO,0.0
+247,C_0_PV8.0_HP,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+248,A_22_PV84.0,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+249,AL_3_PV8.0,3247.550374,13072.576640000001,941.0464413999999,h0+l2,GMF,0.0
+250,A_24_PV16.0,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+251,AD_0,2788.6789949999998,11225.4517,808.0787492000001,h0+l1,GMF,0.0
+252,L_0_STR,4160.278216,11840.436909999999,468.94502570000003,l2,GGB,0.0
+253,A_22_PV27.0_STR,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+254,AE_2,3658.1289060000004,14725.305219999998,1060.020259,h0+g4,GMF,0.0
+255,AE_3,14537.06434,45144.6426,2346.706977,h0+g4,GMF,0.0
+256,A_13_PV10.0_HP,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+257,A_9_PV152.0_STR,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+258,A_22_PV10.0_STR,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+259,A_9_PV9.0,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+260,A_21_PV1.0,5091.9992,20497.15697,1475.5145189999998,h0,MFH,1.0
+261,A_27_PV9.0_HP_STR,2365.64327,9522.578367,685.4951961,h0,MFH,1.0
+262,A_24_PV9.0_STR,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+263,A_13_PV4.0_HP,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+264,A_14_PV28.0,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+265,A_2_PV16.0_STR,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+266,A_14_PV4.0_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+267,A_12_STR,158691.1773,638789.961,45984.126639999995,h0,MFH,1.0
+268,A_9_PV50.0_HP_STR,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+269,AL_0_PV8.0,6311.331384,23017.72729,1470.37085,h0+l2,GMF,0.0
+270,B_0,6823.493146,19420.53677,227.0014935,g1,GMK,0.0
+271,A_0_PV8.0_HP,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+272,G_1_PV30.0,6694.2224719999995,19832.34201,2013.477135,g2,GGA,0.0
+273,S_2,74621.71305,101306.5655,47.93686063,g6,GBD,0.0
+274,A_9_PV27.0_STR,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+275,A_2_PV28.0_STR,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+276,A_22_PV16.0,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+277,E_0_PV8.0_STR,9979.480577,27156.03132,1075.9052060000001,g4,GHA,0.0
+278,A_14_PV16.0_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+279,A_11_PV27.0,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+280,N_0_PV30.0_STR,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+281,Q_1,121946.3418,856069.0636,39009.66039,g1,GKO,0.0
+282,A_23_PV152.0_STR,112411.8281,452498.6737,32573.7059,h0,MFH,1.0
+283,L_1_STR,73797.95126,210034.0267,8318.477840000001,l2,GGB,0.0
+284,A_16_PV80.0_HP_STR,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+285,A_11_PV152.0_STR,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+286,A_19_PV10.0_STR,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+287,A_13_PV8.0_STR,6666.8672670000005,26836.576259999998,1931.865866,h0,MFH,1.0
+288,A_24_PV28.0,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+289,AL_0_PV7.0,8573.322196,34510.75381,2484.301524,h0+l2,GMF,0.0
+290,G_1_PV30.0_HP,6694.2224719999995,19832.34201,2013.477135,g2,GGA,0.0
+291,G_1_PV30.0_STR,6694.2224719999995,19832.34201,2013.477135,g2,GGA,0.0
+292,A_1_PV84.0_STR,134909.9709,543061.9178,39093.01888,h0,MFH,1.0
+293,A_5_PV8.0_HP,10739.11627,43228.86614,3111.8861859999997,h0,MFH,1.0
+294,A_11_PV152.0_HP_STR,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+295,A_23_PV80.0_STR,112411.8281,452498.6737,32573.7059,h0,MFH,1.0
+296,AC_0_PV79.0,8095.942719,45944.03015,1391.120775,h0+g1,GMF,0.0
+297,D_2_PV390.0_STR,40124.77842,114203.2368,729.4101188999999,l0,GMK,0.0
+298,A_0_PV9.0_HP_STR,3642.6739939999998,14663.09355,1055.541872,h0,MFH,1.0
+299,D_2,40124.77842,114203.2368,729.4101188999999,l0,GMK,0.0
+300,A_4_PV27.0_STR,54611.4143,219830.893,15824.812909999999,h0,MFH,1.0
+301,A_2_PV10.0_HP,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+302,AE_0,8873.897794,29415.64755,1691.719368,h0+g4,GMF,0.0
+303,V_3,204798.38199999998,440943.7408,440943.7408,g4,GBD,0.0
+304,D_0_PV7.0,4108.428457999999,11693.41854,74.68525454,l0,GMK,0.0
+305,A_22_PV84.0_HP_STR,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+306,L_0_PV73.0,4160.278216,11840.436909999999,468.94502570000003,l2,GGB,0.0
+307,A_4_PV4.0,54611.4143,219830.893,15824.812909999999,h0,MFH,1.0
+308,A_24_PV10.0,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+309,U_0_PV8.0,483.90903499999996,16624.732219999998,3890.5540020000003,g3,GKO,0.0
+310,AE_1,28178.805360000002,83029.92005,3923.977783,h0+g4,GMF,0.0
+311,A_24_PV10.0_STR,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+312,AC_0_STR,7063.27682,44458.153289999995,900.9139905999999,h0+g1,GMF,0.0
+313,U_0_PV73.0_STR,483.90903499999996,16624.732219999998,3890.5540020000003,g3,GKO,0.0
+314,AC_0_PV30.0_STR,13259.27221,53373.414469999996,3842.154699,h0+g1,GMF,0.0
+315,A_9_PV50.0,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+316,A_9_PV8.0,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+317,A_14_PV5.0_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+318,E_0_PV7.0,9979.480577,27156.03132,1075.9052060000001,g4,GHA,0.0
+319,AE_4,18057.81527,72689.30327,5232.634092,h0+g4,GMF,0.0
+320,A_4_PV80.0,54611.4143,219830.893,15824.812909999999,h0,MFH,1.0
+321,A_11_PV16.0,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+322,N_0_PV73.0_HP,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+323,A_24_PV27.0_STR,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+324,A_16_PV9.0_STR,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+325,A_9_PV4.0,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+326,D_0_PV73.0,4108.428457999999,11693.41854,74.68525454,l0,GMK,0.0
+327,A_2_PV27.0_STR,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+328,C_0_PV30.0_HP,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+329,A_11_PV28.0_STR,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+330,A_16_PV28.0_STR,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+331,A_2_PV50.0,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+332,A_19_PV8.0_HP,8523.514643,34310.26021,2469.868732,h0,MFH,1.0
+333,A_16_PV50.0_STR,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+334,A_14_PV9.0_HP,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+335,A_14_PV84.0_HP_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+336,A_2_PV4.0,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+337,A_7_PV288.0_HP_STR,233517.4791,939993.1611,67666.63098,h0,MFH,1.0
+338,V_1,318757.3124,686304.4542,686304.4542,g4,GBD,0.0
+339,A_26_PV10.0,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+340,A_2_PV8.0,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+341,V_0_PV7.0,65417.255020000004,140847.4465,140847.4465,g4,GBD,0.0
+342,A_20_STR,377326.2604,1518876.041,109338.2685,h0,MFH,1.0
+343,A_11_PV4.0,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+344,A_20,377326.2604,1518876.041,109338.2685,h0,MFH,1.0
+345,G_0_PV103.0,87925.74809,260489.3271,26446.16071,g2,GGA,0.0
+346,A_16_PV390.0_STR,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+347,C_0_PV73.0,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+348,A_14_PV84.0,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+349,V_0,65417.255020000004,140847.4465,140847.4465,g4,GBD,0.0
+350,G_0_PV112.0_STR,87925.74809,260489.3271,26446.16071,g2,GGA,0.0
+351,Q_0_PV7.0,4343.104444,30488.79776,1389.32441,g1,GKO,0.0
+352,Q_0_PV73.0,4343.104444,30488.79776,1389.32441,g1,GKO,0.0
+353,A_4_PV9.0,54611.4143,219830.893,15824.812909999999,h0,MFH,1.0
+354,A_3_PV28.0_STR,311665.3228,1254566.781,90311.62236000001,h0,MFH,1.0
+355,R_0_PV53.0,8300.523372,43577.7477,1985.766348,g6,GBD,0.0
+356,AC_1_PV112.0,181178.4551,1140385.65,23109.13322,h0+g1,GMF,0.0
+357,E_0_PV25.0,9979.480577,27156.03132,1075.9052060000001,g4,GHA,0.0
+358,A_14_PV8.0_STR,16630.23974,66942.79025,4818.963874,h0,MFH,1.0
+359,AC_0_PV30.0_HP,13259.27221,53373.414469999996,3842.154699,h0+g1,GMF,0.0
+360,R_1,367932.3093,1931644.624,88021.8711,g6,GBD,0.0
+361,A_24_PV4.0_STR,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+362,A_17,478446.8934,1925923.53,138640.1116,h0,MFH,1.0
+363,A_17_STR,478446.8934,1925923.53,138640.1116,h0,MFH,1.0
+364,A_26_PV9.0,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+365,A_22_PV27.0,13329.622609999999,53656.60053,3862.5402159999994,h0,MFH,1.0
+366,A_8_PV390.0_HP_STR,82147.63936,330674.2582,23804.01681,h0,MFH,1.0
+367,A_24_PV28.0_STR,29861.09516,120201.8167,8652.884205,h0,MFH,1.0
+368,A_26_PV4.0,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+369,A_2_PV152.0_STR,20488.69532,82474.4835,5937.033024,h0,MFH,1.0
+370,A_26_PV28.0_HP_STR,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+371,C_0_PV112.0,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+372,A_16_PV28.0_HP_STR,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+373,A_4_PV28.0_STR,54611.4143,219830.893,15824.812909999999,h0,MFH,1.0
+374,A_15_PV1.0_STR,1093.874944,4403.24626,316.9734123,h0,MFH,1.0
+375,N_0_PV112.0,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+376,AC_1_STR,181178.4551,1140385.65,23109.13322,h0+g1,GMF,0.0
+377,A_16_PV84.0_STR,67895.81632,273305.4641,19674.2495,h0,MFH,1.0
+378,AC_0_PV7.0_STR,13259.27221,53373.414469999996,3842.154699,h0+g1,GMF,0.0
+379,A_26_PV16.0_HP,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+380,AC_0_PV73.0,13259.27221,53373.414469999996,3842.154699,h0+g1,GMF,0.0
+381,A_8_PV27.0_STR,82147.63936,330674.2582,23804.01681,h0,MFH,1.0
+382,A_26_PV16.0,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+383,A_18_PV9.0_STR,93997.95422,378376.1047,27237.8963,h0,MFH,1.0
+384,A_8_PV27.0,82147.63936,330674.2582,23804.01681,h0,MFH,1.0
+385,G_1_PV25.0,6694.2224719999995,19832.34201,2013.477135,g2,GGA,0.0
+386,A_18_PV390.0_HP_STR,93997.95422,378376.1047,27237.8963,h0,MFH,1.0
+387,A_11_PV10.0,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+388,AC_0_PV178.0,13259.27221,53373.414469999996,3842.154699,h0+g1,GMF,0.0
+389,D_2_PV8.0,40124.77842,114203.2368,729.4101188999999,l0,GMK,0.0
+390,D_1,116834.373,332534.2617,2123.878991,l0,GMK,0.0
+391,V_2_PV30.0,20032.90823,43132.10587,43132.10587,g4,GBD,0.0
+392,C_0_PV103.0_STR,5895.243735,45146.8427,177.0449093,g1,GBD,0.0
+393,AC_0_PV25.0,13259.27221,53373.414469999996,3842.154699,h0+g1,GMF,0.0
+394,A_25_PV28.0_STR,194011.9042,780968.79,56219.054679999994,h0,MFH,1.0
+395,AE_0_PV7.0,8873.897794,29415.64755,1691.719368,h0+g4,GMF,0.0
+396,D_1_PV103.0,116834.373,332534.2617,2123.878991,l0,GMK,0.0
+397,A_26_PV80.0_STR,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+398,A_9_PV152.0_HP_STR,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+399,A_12_PV80.0_STR,158691.1773,638789.961,45984.126639999995,h0,MFH,1.0
+400,A_12_PV28.0_HP_STR,158691.1773,638789.961,45984.126639999995,h0,MFH,1.0
+401,AC_0_PV8.0_HP,7063.27682,44458.153289999995,900.9139905999999,h0+g1,GMF,0.0
+402,A_26_PV4.0_STR,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+403,A_11_PV80.0_HP_STR,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+404,G_1_PV7.0_STR,6694.2224719999995,19832.34201,2013.477135,g2,GGA,0.0
+405,A_23_PV28.0_STR,112411.8281,452498.6737,32573.7059,h0,MFH,1.0
+406,A_26_PV152.0_STR,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+407,A_26_PV152.0_HP_STR,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+408,A_11_PV50.0_STR,36178.51608,145631.7438,10483.4906,h0,MFH,1.0
+409,Q_0_STR,4343.104444,30488.79776,1389.32441,g1,GKO,0.0
+410,N_0_PV390.0_STR,16602.35612,29318.565169999998,1312.394883,g1,GBD,0.0
+411,L_0_PV79.0,4160.278216,11840.436909999999,468.94502570000003,l2,GGB,0.0
+412,Q_0_PV30.0,4343.104444,30488.79776,1389.32441,g1,GKO,0.0
+413,E_0_PV53.0,9979.480577,27156.03132,1075.9052060000001,g4,GHA,0.0
+414,A_9_PV16.0_STR,24734.64265,99565.97261,7167.386111,h0,MFH,1.0
+415,A_1_PV84.0_HP_STR,134909.9709,543061.9178,39093.01888,h0,MFH,1.0
+416,AD_1,41576.5126,167360.6518,12047.67432,h0+l1,GMF,0.0
+417,A_26_PV288.0_HP_STR,44777.02232,180243.8726,12975.08973,h0,MFH,1.0
+418,A_1_PV80.0_STR,134909.9709,543061.9178,39093.01888,h0,MFH,1.0
diff --git a/runme.py b/runme.py
index 18a464ddc6c52d8ec082fe26ac2a631f7e704ad2..910617a75be287865360d035b6778787b4a1614a 100644
--- a/runme.py
+++ b/runme.py
@@ -14,14 +14,57 @@ class SimulationScope(Enum):
     PROSUMER = 1
     DISTRICT = 2
 
+
+# Define a function to split strings and extract base names
+def extract_base_name(s):
+    splits = s.split("_")
+    return splits[0] + "_" + splits[1]
+
+
+# Define a function to split strings and extract base names
+def extract_str_name(s):
+    splits = s.split("_")
+    if len(splits) == 3 and 'STR' in splits[2]:  # only storage in prosumer  -> return original
+        return s
+    elif len(splits) == 3 and 'PV' in splits[2]:  # only pv in prosumer  --> add storage
+        return s + '_STR'
+    else:  # pv and storage in prosumer  --> return original
+        return s
+
+
+# Define a function to split strings and extract base names
+def extract_pv_name(s):
+    splits = s.split("_")
+    if len(splits) > 2 and 'PV' in splits[2]:  # only give back pv system
+        return splits[0] + "_" + splits[1] + "_" + splits[2]
+    else:  # there is a storage in the prosumer --> exclude it
+        return splits[0] + "_" + splits[1]
+
 simulation_scope = SimulationScope.DISTRICT
 t_start = pd.Timestamp("2019-01-01 00:00:00") # start time of simulation
 t_horizon = 8760 # number of time steps to be simulated
 t_step = 1 # length of a time step in hours
 
-inputpath_dataframe = 'input_files/models/prosumer_models/building_types_aachen_2022/running_77_2022.csv'
+folder_building_configs = 'building_types_aachen_2022'
+inputpath_dataframe_district = 'input_files/models/prosumer_models/building_types_aachen_2022/running_77_2022.csv'
+inputpath_dataframe_all = 'input_files/models/prosumer_models/building_types_aachen_2022/running_info_2022.csv'
 #inputpath_dataframe = 'input_files/models/district_models/quarter_extraction_df_Q_0.csv'
-building_types = pd.read_csv(inputpath_dataframe)
+building_types_district = pd.read_csv(inputpath_dataframe_district)
+building_types = pd.read_csv(inputpath_dataframe_all)
+
+# Initialize empty lists to store the results
+only_pv = []  # contains the community without storage
+original_names = []  # contains the original community names
+full_storage = []  # community with added storage to all prosumers
+
+# Loop over the column of interest and store the indices and strings that match the conditions
+indices = []
+for i, s in enumerate(building_types_district["ID_Building"]):
+    if "STR" in s or "PV" in s:
+        indices.append(i)
+        original_names.append(s)
+        full_storage.append(extract_str_name(s))
+        only_pv.append(extract_pv_name(s))
 
 input_profile_dict = {'pv_factors_aachen_1': ['pv_factors', 'input_files/data/irradiance/aachen_pv_factors_ninja_2019_1h_to_2019_15min.csv'],
                       'pv_factors_germany_1': ['pv_factors', 'input_files/data/irradiance/irr_ren_ninja_avg_Germany.csv'],
@@ -33,22 +76,24 @@ input_profile_dict = {'pv_factors_aachen_1': ['pv_factors', 'input_files/data/ir
                       'dhw_mhf_passive': ['hot_water_demand', 'input_files/data/demand/domestic_hot_water/synPRO_passive_multi_party_house_dhw_2021_to_2019_kW.csv'],
                       'elec_price_1': ['prices', 'input_files/data/prices/day-ahead/hourly_price.csv']}
 
-for i in building_types.index[53:56]:
-    if 'A_' in building_types.iloc[i]['ID_Building']:
+for i in building_types.index[:]:
+    if building_types.iloc[i]['ID_building'] not in (only_pv + original_names + full_storage):
+        continue
+    if 'A_' in building_types.iloc[i]['ID_building']:
         pass
     else:
-        if len(building_types['profile_el'][i]) > 2:
-            profile_list = building_types['profile_el'][i].split('+')
-            input_profile_dict['elec_demand_prosumer_' + str(building_types.loc[i, 'ID_Building'])] = ['elec_demand','generate',
-                                                                                                       building_types['reference_el_demand'][i],
+        if len(building_types['Profile_el'][i]) > 2:
+            profile_list = building_types['Profile_el'][i].split('+')
+            input_profile_dict['elec_demand_prosumer_' + str(building_types.loc[i, 'ID_building'])] = ['elec_demand','generate',
+                                                                                                       building_types['Electricity_demand'][i],
                                                                                                        profile_list[0]]
-            input_profile_dict['Add_elec_demand_prosumer_' + str(building_types.loc[i, 'ID_Building'])] = ['elec_demand','generate',
-                                                                                                         building_types['reference_el_demand'][i],
+            input_profile_dict['Add_elec_demand_prosumer_' + str(building_types.loc[i, 'ID_building'])] = ['elec_demand','generate',
+                                                                                                         building_types['Electricity_demand'][i],
                                                                                                          profile_list[1]]
         else:
-            input_profile_dict['elec_demand_prosumer_' + str(building_types.loc[i, 'ID_Building'])] = ['elec_demand', 'generate',
-                                                                                                       building_types['reference_el_demand'][i],
-                                                                                                       building_types['profile_el'][i]]
+            input_profile_dict['elec_demand_prosumer_' + str(building_types.loc[i, 'ID_building'])] = ['elec_demand', 'generate',
+                                                                                                       building_types['Electricity_demand'][i],
+                                                                                                       building_types['Profile_el'][i]]
 
 input_profiles = Tooling.input_profile_processor.input_profile_processor.process_input_profiles(input_profile_dict, t_start, t_horizon, t_step)
 
@@ -68,7 +113,7 @@ ref_yearly_dhw_demand = input_profiles['dhw_mhf_passive'].sum()*t_step  # in kWh
 
 # Create a new column in building_types to store the index of the closest value
 building_types['closest_index'] = building_types.apply(
-    lambda row: np.abs(row['reference_el_demand'] - ref_yearly_elec_demand).idxmin(),
+    lambda row: np.abs(row['Electricity_demand'] - ref_yearly_elec_demand).idxmin(),
     axis=1)
 
 # 'config_path': path to global configurations like prices, injection prices, emission costs, etc.
@@ -76,15 +121,15 @@ building_types['closest_index'] = building_types.apply(
 prosumer_dict = {}
 
 # drop the heatpump
-building_types.drop(index=141, inplace=True)
-building_types.reset_index(inplace=True)
+building_types_district.drop(index=141, inplace=True)
+building_types_district.reset_index(inplace=True)
 
 
 # building_types.index[53:61]
 community_sample = random.sample(range(197),30)
 
 # how many storages
-ids = building_types.loc[:]['ID_Building']
+ids = building_types_district.loc[:]['ID_Building']
 string_str = 'STR'
 string_pv = 'PV'
 string_ac = 'AC'
@@ -101,64 +146,62 @@ print('Number of storages: ' + str(count_str))
 print('Number of PV: ' + str(count_pv))
 print('Number of AC: ' + str(count_ac))
 
-consumer_count = 0
-for i in building_types.index[54:56]:
+ps_count = 1
+for i in building_types.index[:]:
 
-    if 'A_' in building_types.iloc[i]['ID_Building']:
+    if len(prosumer_dict) > 2:
+        continue
+
+    if building_types.iloc[i]['ID_building'] not in original_names or 'HP' in building_types.iloc[i]['ID_building']:
+        continue
+    else:
+        prosumer_name = building_types.iloc[i]['ID_building'] + '_Q_' + str(ps_count)
+        ps_count += 1
+
+    if building_types.iloc[i]['ID_building'] != 'A_21_PV28.0_STR':
+        pass
+
+    if 'A_' in building_types.iloc[i]['ID_building']:
         # get the index of the reference profile for this building type
         index_ref_elec_demand = building_types['closest_index'][i]
 
         # scale profiles based on the reference data
         # ELECTRICITY
-        scaled_heat_demand = building_types['reference_el_demand'][i] / ref_yearly_elec_demand[index_ref_elec_demand] * input_profiles['ref_elec_demand_id_' + str(index_ref_elec_demand)]
-        input_profiles['elec_demand_prosumer_' + str(building_types.loc[i, 'ID_Building'])] = scaled_heat_demand
+        scaled_heat_demand = building_types['Electricity_demand'][i] / ref_yearly_elec_demand[index_ref_elec_demand] * input_profiles['ref_elec_demand_id_' + str(index_ref_elec_demand)]
+        input_profiles['elec_demand_prosumer_' + str(building_types.loc[i, 'ID_building'])] = scaled_heat_demand
 
     # ROOM HEATING
-    scaled_heat_demand = building_types['reference_heat_demand'][i] / ref_yearly_rh_demand * input_profiles['room_heating_mfh_passive']
-    input_profiles['room_heat_demand_prosumer_' + str(building_types.loc[i,'ID_Building'])] = scaled_heat_demand
+    scaled_heat_demand = building_types['Thermal_demand'][i] / ref_yearly_rh_demand * input_profiles['room_heating_mfh_passive']
+    input_profiles['room_heat_demand_prosumer_' + str(building_types.loc[i,'ID_building'])] = scaled_heat_demand
 
     # HOT WATER
-    scaled_hot_water_demand = building_types['reference_hot_water'][i] / ref_yearly_rh_demand * input_profiles['dhw_mhf_passive']
-    input_profiles['hot_water_demand_prosumer_' + str(building_types.loc[i, 'ID_Building'])] = scaled_hot_water_demand
+    scaled_hot_water_demand = building_types['HotWater_demand'][i] / ref_yearly_rh_demand * input_profiles['dhw_mhf_passive']
+    input_profiles['hot_water_demand_prosumer_' + str(building_types.loc[i, 'ID_building'])] = scaled_hot_water_demand
 
 
-    if 'PV' in building_types.loc[i,'ID_Building'] and 'HP' in building_types.loc[i, 'ID_Building']:
+    if 'HP' in building_types.loc[i, 'ID_building']:
 
-        prosumer_dict[building_types.loc[i,'name_building']]= {'config_path': 'input_files/models/prosumer_models/building_types_aachen_2022/'+ str(building_types.loc[i,'ID_Building']) + '/config.csv',
-                                                 'topology_path': 'input_files/models/prosumer_models/building_types_aachen_2022/'+ str(building_types.loc[i,'ID_Building']),
-                                                'profiles':{'elec_cns': 'elec_demand_prosumer_' + str(building_types.loc[i, 'ID_Building']),
-                                                            'therm_cns': 'room_heat_demand_prosumer_' + str(building_types.loc[i,'ID_Building']),
-                                                            'dhw_dmd': 'hot_water_demand_prosumer_' + str(building_types.loc[i, 'ID_Building']),
+        prosumer_dict[prosumer_name]= {'config_path': 'input_files/models/prosumer_models/building_types_aachen_2022/'+ str(building_types.loc[i,'ID_building']) + '/config.csv',
+                                                 'topology_path': 'input_files/models/prosumer_models/building_types_aachen_2022/'+ str(building_types.loc[i,'ID_building']),
+                                                'profiles':{'elec_cns': 'elec_demand_prosumer_' + str(building_types.loc[i, 'ID_building']),
+                                                            'therm_cns': 'room_heat_demand_prosumer_' + str(building_types.loc[i,'ID_building']),
+                                                            'dhw_dmd': 'hot_water_demand_prosumer_' + str(building_types.loc[i, 'ID_building']),
                                                             'pv_roof': ['pv_factors_aachen_1'],
                                                             'heat_pump': 'temperature_1'}}
-    elif 'PV' in building_types.loc[i,'ID_Building']:
-        prosumer_dict[building_types.loc[i, 'name_building']] = {'config_path': 'input_files/models/prosumer_models/building_types_aachen_2022/'+ str(building_types.loc[i, 'ID_Building']) + '/config.csv',
-                                                    'topology_path': 'input_files/models/prosumer_models/building_types_aachen_2022/'+ str(building_types.loc[i, 'ID_Building']),
-                                                    'profiles': {'elec_cns': 'elec_demand_prosumer_' + str(building_types.loc[i, 'ID_Building']),
+    elif 'PV' in building_types.loc[i,'ID_building']:
+        prosumer_dict[prosumer_name] = {'config_path': 'input_files/models/prosumer_models/' + folder_building_configs + '/' + str(building_types.loc[i, 'ID_building']) + '/config.csv',
+                                                    'topology_path': 'input_files/models/prosumer_models/' + folder_building_configs + '/' + str(building_types.loc[i, 'ID_building']),
+                                                    'profiles': {'elec_cns': 'elec_demand_prosumer_' + str(building_types.loc[i, 'ID_building']),
                                                                  'pv_roof': ['pv_factors_aachen_1']}}
     else:
-        prosumer_dict[building_types.loc[i, 'name_building']] = {'config_path': 'input_files/models/prosumer_models/building_types_aachen_2022/'+ str(building_types.loc[i, 'ID_Building']) + '/config.csv',
-                                                    'topology_path': 'input_files/models/prosumer_models/building_types_aachen_2022/'+ str(building_types.loc[i, 'ID_Building']),
-                                                    'profiles': {'elec_cns': 'elec_demand_prosumer_' + str(building_types.loc[i, 'ID_Building'])}}
+        prosumer_dict[prosumer_name] = {'config_path': 'input_files/models/prosumer_models/' + folder_building_configs + '/' + str(building_types.loc[i, 'ID_building']) + '/config.csv',
+                                                    'topology_path': 'input_files/models/prosumer_models/' + folder_building_configs + '/' + str(building_types.loc[i, 'ID_building']),
+                                                    'profiles': {'elec_cns': 'elec_demand_prosumer_' + str(building_types.loc[i, 'ID_building'])}}
 
 
 
 num=0
 
-"""
-prosumer_dict = {'SCN2_CAT1_PV11_3000_6000':{'config_path': 'input_files/models/prosumer_models/SCN2_CAT1_PV11/config.csv',
-                                             'topology_path': 'input_files/models/prosumer_models/SCN2_CAT1_PV11',
-                                             'profiles': {'pv_roof': ['irradiance_1', 'temperature_1'],
-                                                          'elec_cns': 'demand_electric_1',
-                                                          'therm_cns': 'demand_heat_1',
-                                                          'dhw_dmd': 'demand_hot_water_1'}},
-                 'SCN0_CAT1_3000_6000': {'config_path': 'input_files/models/prosumer_models/SCN0_CAT1/config.csv',
-                                         'topology_path': 'input_files/models/prosumer_models/SCN0_CAT1',
-                                         'profiles': {'elec_cns': 'demand_electric_2',
-                                                      'therm_cns': 'demand_heat_2',
-                                                      'dhw_dmd': 'demand_hot_water_2'}}}
-"""
-
 prosumer_main = main_prosumer.ProsumerMain(prosumer_dict, input_profiles, t_horizon, t_step)
 
 prosumer_sizing_strategy = 'annuity'