diff --git a/lib/porch/step_decorators/proc_step_decorator.rb b/lib/porch/step_decorators/proc_step_decorator.rb
index <HASH>..<HASH> 100644
--- a/lib/porch/step_decorators/proc_step_decorator.rb
+++ b/lib/porch/step_decorators/proc_step_decorator.rb
@@ -7,7 +7,9 @@ module Porch
     end
 
     def execute(context)
-      Context.new(context)
+      ctx = Context.new(context)
+      step.call ctx
+      ctx
     end
 
     def self.decorates?(step)
diff --git a/spec/porch/step_decorators/proc_step_decorator_spec.rb b/spec/porch/step_decorators/proc_step_decorator_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/porch/step_decorators/proc_step_decorator_spec.rb
+++ b/spec/porch/step_decorators/proc_step_decorator_spec.rb
@@ -12,4 +12,16 @@ RSpec.describe Porch::ProcStepDecorator do
       expect(described_class).to_not be_decorates Object
     end
   end
+
+  describe "#execute" do
+    let(:context) { Hash.new }
+    let(:step) { Proc.new {} }
+    subject { described_class.new step }
+
+    it "calls the proc with the context" do
+      expect(step).to receive(:call).with(context)
+
+      subject.execute context
+    end
+  end
 end
Implement execute for proc step decorator