diff --git a/system/dev/block/block/rules.mk b/system/dev/block/block/rules.mk
index 6ee1f39..d662fea 100644
--- a/system/dev/block/block/rules.mk
+++ b/system/dev/block/block/rules.mk
@@ -19,7 +19,18 @@
     system/ulib/zxcpp \
     system/ulib/fbl \
     system/ulib/fzl \
+    system/ulib/trace-provider \
+    system/ulib/trace \
+    system/ulib/async.cpp \
+    system/ulib/async \
+    system/ulib/async-loop.cpp \
+    system/ulib/async-loop \
 
-MODULE_LIBS := system/ulib/c system/ulib/driver system/ulib/zircon
+MODULE_LIBS := system/ulib/c \
+    system/ulib/driver \
+    system/ulib/zircon \
+    system/ulib/async.default \
+    system/ulib/fdio \
+    system/ulib/trace-engine
 
 include make/module.mk
diff --git a/system/dev/block/block/server.cpp b/system/dev/block/block/server.cpp
index e980e8a..6a42eb8 100644
--- a/system/dev/block/block/server.cpp
+++ b/system/dev/block/block/server.cpp
@@ -7,8 +7,11 @@
 #include <stdbool.h>
 #include <string.h>
 
+// DDK Includes
 #include <ddk/device.h>
 #include <ddk/protocol/block.h>
+#include <ddk/debug.h>
+
 #include <fbl/algorithm.h>
 #include <fbl/alloc_checker.h>
 #include <fbl/auto_call.h>
@@ -21,6 +24,13 @@
 #include <zircon/syscalls.h>
 #include <lib/zx/fifo.h>
 
+// Tracing Includes
+#include <lib/async-loop/cpp/loop.h>
+#include <lib/async/cpp/task.h>
+#include <lib/async/cpp/time.h>
+#include <trace-provider/provider.h>
+#include <trace/event.h>
+
 #include "server.h"
 
 namespace {
@@ -91,6 +101,52 @@
 
 }  // namespace
 
+
+async::Loop loop;
+trace::TraceProvider provider(loop.async());
+
+/*
+zx_status_t status;
+async_loop_t* loop;
+trace_provider_t* trace_provider;
+trace_async_id_t async_id;
+
+
+void register_trace(void) {
+    // Create a message loop.
+    status = async_loop_create(NULL, &loop);
+    if (status != ZX_OK) {
+        zxlogf(ERROR, "Failed to create a message loop.\n");
+        zxlogf(ERROR, "----------Failed to register the tracing interface.----------\n");
+        return;
+    }
+
+    // Start a thread for the loop to run on.
+    // We could instead use async_loop_run() to run on the current thread.
+    status = async_loop_start_thread(loop, "loop", NULL);
+    if (status != ZX_OK) {
+        zxlogf(ERROR, "Failed to start a thread.\n");
+        zxlogf(ERROR, "----------Failed to register the tracing interface.----------\n");
+        return;
+    } 
+
+    // Create the trace provider.
+    async_t* async = async_loop_get_dispatcher(loop);
+    trace_provider = trace_provider_create(async);
+    if (!trace_provider) {
+        zxlogf(ERROR, "Failed to create a trace provider.\n");
+        zxlogf(ERROR, "----------Failed to register the tracing interface.----------\n");
+    }
+
+    zxlogf(TRACE, "----------Tracing interface is registered successfully!-------\n");
+}
+
+void close_trace(void) {
+    trace_provider_destroy(trace_provider);
+    async_loop_shutdown(loop);
+    zxlogf(TRACE, "----------Tracing interface is closed successfully!----------\n");
+}
+*/
 TransactionGroup::TransactionGroup(zx_handle_t fifo, txnid_t txnid) :
     fifo_(fifo), flags_(0), ctr_(0) {
     memset(&response_, 0, sizeof(response_));
@@ -100,6 +156,7 @@
 TransactionGroup::~TransactionGroup() {}
 
 zx_status_t TransactionGroup::Enqueue(bool do_respond) {
+    
     fbl::AutoLock lock(&lock_);
     if (flags_ & kTxnFlagRespond) {
         // Can't get more than one response for a txn
