diff --git a/ipmbbridged.hpp b/ipmbbridged.hpp
index 01b2f44..d781e17 100644
--- a/ipmbbridged.hpp
+++ b/ipmbbridged.hpp
@@ -21,6 +21,11 @@
 #include <sdbusplus/message.hpp>
 #include <vector>
 
+extern "C" {
+#include <i2c/smbus.h>
+#include <linux/i2c-dev.h>
+}
+
 #ifndef IPMBBRIDGED_HPP
 #define IPMBBRIDGED_HPP
 
@@ -49,6 +54,11 @@
 constexpr uint8_t ipmbI2cNumberOfRetries = 2;
 
 /**
+ * @brief Ipmb boardcast address
+ */
+constexpr uint8_t broadcastAddress = 0x0;
+
+/**
  * @brief Ipmb defines
  */
 constexpr size_t ipmbMaxDataSize = 256;
@@ -273,7 +283,7 @@
 
     void processI2cEvent();
 
-    void ipmbResponseSend(std::shared_ptr<std::vector<uint8_t>> buffer,
+    void ipmbSendI2cFrame(std::shared_ptr<std::vector<uint8_t>> buffer,
                           size_t retriesAttempted);
 
     std::tuple<int, uint8_t, uint8_t, uint8_t, uint8_t, std::vector<uint8_t>>
@@ -309,4 +319,36 @@
     void makeRequestValid(std::shared_ptr<IpmbRequest> request);
 };
 
+/**
+ * @brief ioWrite class declaration
+ */
+class ioWrite
+{
+  public:
+    ioWrite(std::vector<uint8_t> &buffer)
+    {
+        i2cmsg[0].addr = ipmbAddressTo7BitSet(buffer[0]);
+        i2cmsg[0].len = buffer.size() - ipmbAddressSize;
+        i2cmsg[0].buf = buffer.data() + ipmbAddressSize;
+
+        msgRdwr.msgs = i2cmsg;
+        msgRdwr.nmsgs = 1;
+    };
+
+    int name()
+    {
+        return static_cast<int>(I2C_RDWR);
+    }
+
+    void *data()
+    {
+        return &msgRdwr;
+    }
+
+  private:
+    int myname;
+    i2c_rdwr_ioctl_data msgRdwr = {0};
+    i2c_msg i2cmsg[1] = {0};
+};
+
 #endif
