diff --git a/app/components/budgets/executions/heading_component.html.erb b/app/components/budgets/executions/heading_component.html.erb
new file mode 100644
index 000000000..e4f67b94d
--- /dev/null
+++ b/app/components/budgets/executions/heading_component.html.erb
@@ -0,0 +1,26 @@
+
+
+ <%= heading.name %> (<%= investments.count %>)
+
+
+ <% investments.each do |investment| %>
+
+
+ <%= render Budgets::Executions::ImageComponent.new(investment) %>
+
+
+
+ <%= link_to investment.title,
+ polymorphic_path(investment, anchor: "tab-milestones") %>
+
+ <%= investment.author.name %>
+
+
+ <%= investment.formatted_price %>
+
+
+
+
+ <% end %>
+
+
diff --git a/app/components/budgets/executions/heading_component.rb b/app/components/budgets/executions/heading_component.rb
new file mode 100644
index 000000000..4f38ac5a7
--- /dev/null
+++ b/app/components/budgets/executions/heading_component.rb
@@ -0,0 +1,8 @@
+class Budgets::Executions::HeadingComponent < ApplicationComponent
+ attr_reader :heading, :investments
+
+ def initialize(heading, investments)
+ @heading = heading
+ @investments = investments
+ end
+end
diff --git a/app/components/budgets/executions/investments_component.html.erb b/app/components/budgets/executions/investments_component.html.erb
index b6a7dc937..93ffbb281 100644
--- a/app/components/budgets/executions/investments_component.html.erb
+++ b/app/components/budgets/executions/investments_component.html.erb
@@ -1,26 +1,3 @@
<% investments_by_heading.each do |heading, investments| %>
-
- <%= heading.name %> (<%= investments.count %>)
-
-
- <% investments.each do |investment| %>
-
-
- <%= render Budgets::Executions::ImageComponent.new(investment) %>
-
-
-
- <%= link_to investment.title,
- polymorphic_path(investment, anchor: "tab-milestones") %>
-
- <%= investment.author.name %>
-
-
- <%= investment.formatted_price %>
-
-
-
-
- <% end %>
-
+ <%= render Budgets::Executions::HeadingComponent.new(heading, investments) %>
<% end %>