diff --git a/compute_kernel_writer/include/ckw/Kernel.h b/compute_kernel_writer/include/ckw/Kernel.h
index 0cab713..54e7ca3 100644
--- a/compute_kernel_writer/include/ckw/Kernel.h
+++ b/compute_kernel_writer/include/ckw/Kernel.h
@@ -25,12 +25,17 @@
 #ifndef CKW_INCLUDE_CKW_KERNEL_H
 #define CKW_INCLUDE_CKW_KERNEL_H
 
-#include "ckw/types/TargetLanguage.h"
 #include <string>
 
 namespace ckw
 {
 
+// Forward Declerations
+class TileInfo;
+class ITileOperand;
+
+enum class TargetLanguage;
+
 /** The kernel that has been emitted by the kernel writer.
  *
  * It contains all the necessary information to compile and execute the kernel.
@@ -38,6 +43,8 @@
 class Kernel
 {
 public:
+    virtual ~Kernel();
+
     /** Initialize a new instance of @ref Kernel class with all emitted kernel information.
      *
      * @param[in] language    The target language of the kernel.
@@ -51,6 +58,9 @@
     /** Get the source code. */
     const std::string &source_code() const;
 
+    /** Add a tile operand */
+    virtual ITileOperand &add_operand(const std::string &name, const TileInfo &tile_info) = 0;
+
 private:
     TargetLanguage _language;
     std::string    _source_code;
diff --git a/compute_kernel_writer/include/ckw/KernelWriter.h b/compute_kernel_writer/include/ckw/KernelWriter.h
index ba8a601..f1635c6 100644
--- a/compute_kernel_writer/include/ckw/KernelWriter.h
+++ b/compute_kernel_writer/include/ckw/KernelWriter.h
@@ -25,9 +25,10 @@
 #ifndef CKW_INCLUDE_CKW_KERNELWRITER_H
 #define CKW_INCLUDE_CKW_KERNELWRITER_H
 
-#include "ckw/types/TargetArchitecture.h"
-#include "ckw/types/TargetLanguage.h"
+#include "ckw/ITileOperand.h"
+
 #include <memory>
+#include <set>
 #include <string>
 
 namespace ckw
@@ -35,6 +36,11 @@
 
 class Kernel;
 
+/** Forward Declerations */
+class TileInfo;
+enum class TargetArchitecture;
+enum class TargetLanguage;
+
 /** A kernel writer.
  *
  * This class is used to construct a new kernel by defining arguments, declaring variable and writing code.
@@ -71,6 +77,7 @@
     // =============================================================================================
 
     /** Write the line comment in debug build.
+     *
      * This function does not take effect on release build.
      *
      * The comment must only contain one line (i.e. no newline character is allowed).
@@ -88,6 +95,31 @@
      * @param[in] name The name of the kernel object to be generated.
      */
     virtual std::unique_ptr<Kernel> emit_kernel(const std::string &name) = 0;
+
+    /** Declare a tile given its name and tile info
+     *
+     * @param[in] name Name of the tile
+     * @param[in] tile_info Shape and data type of the tile
+     *
+     * @returns The created tile operand
+     */
+    virtual ITileOperand &declare_tile(const std::string &name, const TileInfo &tile_info) = 0;
+
+protected:
+    int32_t id_space() const;
+
+    /** Pure virtual function to be overridden by language specific subclasses to add a tile operand to the kernel */
+    virtual ITileOperand &add_operand(const std::string &name, const TileInfo &tile_info) = 0;
+
+    /** Add a tile operand to the operand list */
+    ITileOperand &add_operand(std::unique_ptr<ITileOperand> &operand_ptr);
+
+    /** Generate full variable name by prefixing it with id space */
+    std::string generate_full_name(const std::string &name) const;
+
+private:
+    int32_t _id_space{ 0 };
+    std::set<std::unique_ptr<ITileOperand>> _operands {};
 };
 
 } // namespace ckw
