diff --git a/src/main/java/io/takima/temporalpractice/bakery/bake/BakeService.java b/src/main/java/io/takima/temporalpractice/bakery/bake/BakeService.java
index 66a48c3f3e5bcc80be8ab7de974826ab96b31088..d411a8be32df2e0247eeecbddd9b5fd92a3ccc15 100644
--- a/src/main/java/io/takima/temporalpractice/bakery/bake/BakeService.java
+++ b/src/main/java/io/takima/temporalpractice/bakery/bake/BakeService.java
@@ -1,5 +1,8 @@
 package io.takima.temporalpractice.bakery.bake;
 
+import io.temporal.activity.ActivityInterface;
+
+@ActivityInterface
 public interface BakeService {
     void bake();
 }
diff --git a/src/main/java/io/takima/temporalpractice/bakery/bake/BakeServiceImpl.java b/src/main/java/io/takima/temporalpractice/bakery/bake/BakeServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..346b162162bbb58491d017e5d73df6e56e0befed
--- /dev/null
+++ b/src/main/java/io/takima/temporalpractice/bakery/bake/BakeServiceImpl.java
@@ -0,0 +1,8 @@
+package io.takima.temporalpractice.bakery.bake;
+
+public class BakeServiceImpl implements BakeService {
+    @Override
+    public void bake() {
+        System.out.println("Baking cookies!");
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/io/takima/temporalpractice/bakery/batter/BatterService.java b/src/main/java/io/takima/temporalpractice/bakery/batter/BatterService.java
index 486e82f5ed12bed568ecc0e77ad98631556d8559..2bf83ed4d7dca9dd7096800ece52b82e1ae22efb 100644
--- a/src/main/java/io/takima/temporalpractice/bakery/batter/BatterService.java
+++ b/src/main/java/io/takima/temporalpractice/bakery/batter/BatterService.java
@@ -1,5 +1,8 @@
 package io.takima.temporalpractice.bakery.batter;
 
+import io.temporal.activity.ActivityInterface;
+
+@ActivityInterface
 public interface BatterService {
     void prepareBatter();
 }
diff --git a/src/main/java/io/takima/temporalpractice/bakery/batter/BatterServiceImpl.java b/src/main/java/io/takima/temporalpractice/bakery/batter/BatterServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..305a10a8d168e8e99e5f6d3817f8c00d21a1d3f0
--- /dev/null
+++ b/src/main/java/io/takima/temporalpractice/bakery/batter/BatterServiceImpl.java
@@ -0,0 +1,8 @@
+package io.takima.temporalpractice.bakery.batter;
+
+public class BatterServiceImpl implements BatterService {
+    @Override
+    public void prepareBatter() {
+        System.out.println("Mixing flour, sugar, and love...");
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/io/takima/temporalpractice/bakery/cookie/BestCookieWorkflow.java b/src/main/java/io/takima/temporalpractice/bakery/cookie/BestCookieWorkflow.java
index 76e6fec58821f7966ebef9112ef6d42338bd439e..738023465e87349a22f6007fb33faa31bd8a1efd 100644
--- a/src/main/java/io/takima/temporalpractice/bakery/cookie/BestCookieWorkflow.java
+++ b/src/main/java/io/takima/temporalpractice/bakery/cookie/BestCookieWorkflow.java
@@ -1,10 +1,30 @@
 package io.takima.temporalpractice.bakery.cookie;
 
+import io.temporal.activity.ActivityOptions;
+import io.temporal.workflow.Workflow;
+import io.takima.temporalpractice.bakery.batter.BatterService;
+import io.takima.temporalpractice.bakery.bake.BakeService;
+import java.time.Duration;
+
 public class BestCookieWorkflow implements CookieWorkflow {
+    private final BatterService batterService;
+    private final BakeService bakeService;
+
+    public BestCookieWorkflow() {
+        ActivityOptions options = ActivityOptions.newBuilder()
+                .setTaskQueue("theOneAndOnlyQueue")
+                .setStartToCloseTimeout(Duration.ofSeconds(10))
+                .build();
+
+        this.batterService = Workflow.newActivityStub(BatterService.class, options);
+        this.bakeService = Workflow.newActivityStub(BakeService.class, options);
+    }
+
     @Override
     public void orderCookie() {
-        // Note: System.out.println is used here for simplicity
-        // In real applications, you should use proper Workflow-aware logging (we'll cover this in Day 2)
-        System.out.println("Cookie ordered... Yuum");
+        System.out.println("Starting to prepare your cookie!");
+        batterService.prepareBatter();
+        bakeService.bake();
+        System.out.println("Your cookie is ready!");
     }
 }
\ No newline at end of file