function get_dummy_data(; profilepath=nothing)
    
    elements_bio = [
        DataElement("Flow", "BaseFlow", "GenBioGER", Dict{Any, Any}()),
        DataElement("Arrow", "BaseArrow", "PowerSupplyBioGER", Dict{Any, Any}("Balance" => "PowerBalance_GER", "Flow" => "GenBioGER", "Conversion" => 1.0, "Direction" => "In")),
        DataElement("Cost", "CostTerm", "MCBioGER", Dict{Any, Any}("Param" => 50000.0, "WhichInstance" => "GenBioGER", "WhichConcept" => "Flow", "Direction" => "In")),
        DataElement("Capacity", "PositiveCapacity", "CapBioGER", Dict{Any, Any}("Param" => "CapBioGER", "WhichInstance" => "GenBioGER", "WhichConcept" => "Flow", "Bound" => "Upper")),
        DataElement("Param", "MWToGWhSeriesParam", "CapBioGER", Dict{Any, Any}("Level" => 5000.0, "Profile" => 1.0)),
    ]
    
    elements_nuc = [
        DataElement("Flow", "BaseFlow", "GenNucGER", Dict{Any, Any}()),
        DataElement("Arrow", "BaseArrow", "PowerSupplyNucGER", Dict{Any, Any}("Balance" => "PowerBalance_GER", "Flow" => "GenNucGER", "Conversion" => 1.0, "Direction" => "In")),
        DataElement("Cost", "CostTerm", "MCNucGER", Dict{Any, Any}("Param" => 5000.0, "WhichInstance" => "GenNucGER", "WhichConcept" => "Flow", "Direction" => "In")),
        DataElement("Capacity", "PositiveCapacity", "CapNucGER", Dict{Any, Any}("Param" => "CapNucGER", "WhichInstance" => "GenNucGER", "WhichConcept" => "Flow", "Bound" => "Upper")),
        DataElement("Param", "MWToGWhSeriesParam", "CapNucGER", Dict{Any, Any}("Level" => 5000.0, "Profile" => 1.0)),

    ]
    
    elements_coal = [
        DataElement("Flow", "BaseFlow", "GenCoalGER", Dict{Any, Any}()),
        DataElement("Arrow", "BaseArrow", "PowerSupplyCoalGER", Dict{Any, Any}("Balance" => "PowerBalance_GER", "Flow" => "GenCoalGER", "Conversion" => 1.0, "Direction" => "In")),
        
		#15000000000
        # Capacity, for example capacity value for coal defines how much power that can be generated by coal during optimization.
		DataElement("Capacity", "PositiveCapacity", "CapCoalGER", Dict{Any, Any}("Param" => "CapCoalGER", "WhichInstance" => "GenCoalGER", "WhichConcept" => "Flow", "Bound" => "Upper")),
        DataElement("Param", "MWToGWhSeriesParam", "CapCoalGER", Dict{Any, Any}("Level" => 150000.0, "Profile" => 1.0)),

        DataElement("Cost", "CostTerm", "MCCoalGER", Dict{Any, Any}("Param" => "MCCoalGER", "WhichInstance" => "GenCoalGER", "WhichConcept" => "Flow", "Direction" => "In")),
        DataElement("Param", "FossilMCParam", "MCCoalGER", 
                        Dict("CO2Profile" => "CO2Profile", 
                             "CO2Level" => "CO2Level", 
                             "FuelProfile" => "ProfileCoal", 
                             "FuelLevel" => "LevelCoal", 
                             "CO2Factor" => "CO2FactorCoal",
                             "Efficiency" => "EfficiencyCoal", 
                             "VOC" => "VOCCoal")),
        DataElement("TimeVector", "ConstantTimeVector", "LevelCoal", Dict("Value" => 30000.0)),
        DataElement("TimeVector", "ConstantTimeVector", "ProfileCoal", Dict("Value" => 1.0)),
        DataElement("TimeVector", "ConstantTimeVector", "CO2FactorCoal", Dict("Value" => 0.36)),
        DataElement("TimeVector", "ConstantTimeVector", "VOCCoal", Dict("Value" => 4000.0)),
        DataElement("TimeVector", "ConstantTimeVector", "CO2Level", Dict("Value" => 50000.0)),
        DataElement("TimeVector", "ConstantTimeVector", "CO2Profile", Dict("Value" => 1.0)),
        DataElement("TimeVector", "ConstantTimeVector", "EfficiencyCoal", Dict("Value" => 0.4)),
    ]
    
    elements_power_balance = [
        DataElement("Balance", "BaseBalance", "PowerBalance_GER", Dict{Any, Any}("Commodity" => "Power")),
        DataElement("RHSTerm", "BaseRHSTerm", "DemandGER", Dict{Any, Any}("Balance" => "PowerBalance_GER", "Param" => "DemandGER", "Direction" => "Out")),
        DataElement("Param", "MWToGWhSeriesParam", "DemandGER", Dict("Level" => "LevelDemandGER", "Profile" => "ProfileDemandGER")),
        DataElement("TimeValues", "VectorTimeValues", "LevelDemandGER", Dict("Vector" => [50000.0, 55000.0])),
        DataElement("TimeVector", "InfiniteTimeVector", "LevelDemandGER", Dict("TimeIndex" => "DataLevelsTimeIndex", "TimeValues" => "LevelDemandGER")),
        DataElement("TimeIndex", "VectorTimeIndex", "DataLevelsTimeIndex", Dict("Vector" => [DateTime("2021-01-04T00:00:00"), DateTime("2024-12-30T00:00:00")])),
    ]
    
    if profilepath == nothing
        profilepath = joinpath(dirname(pwd()), "data/testprofiles_1981_2010.csv")
    end
    df = CSV.read(profilepath, DataFrame)
    df.Timestamp = DateTime.(df.Timestamp, dateformat"yyyy-mm-dd HH:MM:SS")
    df_demand = df[:, [:"Timestamp", :"DemandGER"]];
    start = first(df_demand.Timestamp)
    numperiods = length(df_demand.Timestamp)
    matrix = Matrix{Float64}(df_demand[:, ["DemandGER"]])

    push!(elements_power_balance, DataElement(TIMEINDEX_CONCEPT, "RangeTimeIndex", "ProfilesTimeIndex", 
            Dict("Start" => start, "Delta" => Hour(1), "Steps" => numperiods)))
    push!(elements_power_balance, DataElement(TABLE_CONCEPT, "BaseTable", "ProfilesTable", 
            Dict("Matrix" => matrix, "Names" => ["ProfileDemandGER"])))

    # ColumnTimeValues points to a row in BaseTable in another DataElement
    push!(elements_power_balance, DataElement(TIMEVALUES_CONCEPT, "ColumnTimeValues", "ProfileDemandGER", 
            Dict(TABLE_CONCEPT => "ProfilesTable", "Name" => "ProfileDemandGER")))

    # RotatingTimeVector points to a index and values pair in other DataElements
    push!(elements_power_balance, DataElement(TIMEVECTOR_CONCEPT, "RotatingTimeVector", "ProfileDemandGER",
            Dict(TIMEVALUES_CONCEPT => "ProfileDemandGER", TIMEINDEX_CONCEPT => "ProfilesTimeIndex")))
  
  
	all_elements = [
		elements_power_balance; 
		elements_nuc;  
		elements_coal; 
		elements_bio; 
	]
  
  
    elements_final = Dict("elements_bio" => elements_bio, 
    "elements_nuc" => elements_nuc, 
    "elements_coal" => elements_coal,
    "elements_power_balance" => elements_power_balance,
    "all_elements" => all_elements,
	)
    return elements_final
end