diff --git a/delegate/include/DelegateOptions.hpp b/delegate/include/DelegateOptions.hpp
index 0c8173d..daf2015 100644
--- a/delegate/include/DelegateOptions.hpp
+++ b/delegate/include/DelegateOptions.hpp
@@ -17,19 +17,41 @@
 class DelegateOptions
 {
 public:
-    DelegateOptions(armnn::Compute computeDevice);
+    DelegateOptions(armnn::Compute computeDevice, const std::vector<armnn::BackendOptions>& backendOptions = {});
 
-    DelegateOptions(const std::vector<armnn::BackendId>& backends);
+    DelegateOptions(const std::vector<armnn::BackendId>& backends,
+                    const std::vector<armnn::BackendOptions>& backendOptions = {});
 
     const std::vector<armnn::BackendId>& GetBackends() const { return m_Backends; }
 
     void SetBackends(const std::vector<armnn::BackendId>& backends) { m_Backends = backends; }
 
+    const std::vector<armnn::BackendOptions>& GetBackendOptions() const { return m_BackendOptions; }
+
 private:
     /// Which backend to run Delegate on.
     /// Examples of possible values are: CpuRef, CpuAcc, GpuAcc.
     /// CpuRef as default.
     std::vector<armnn::BackendId> m_Backends = { armnn::Compute::CpuRef };
+
+    /// Pass backend specific options to Delegate
+    ///
+    /// For example, tuning can be enabled on GpuAcc like below
+    /// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    /// m_BackendOptions.emplace_back(
+    ///     BackendOptions{"GpuAcc",
+    ///       {
+    ///         {"TuningLevel", 2},
+    ///         {"TuningFile", filename}
+    ///       }
+    ///     });
+    /// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    /// The following backend options are available:
+    /// GpuAcc:
+    ///   "TuningLevel" : int [0..3] (0=UseOnly(default) | 1=RapidTuning | 2=NormalTuning | 3=ExhaustiveTuning)
+    ///   "TuningFile" : string [filenameString]
+    ///   "KernelProfilingEnabled" : bool [true | false]
+    std::vector<armnn::BackendOptions> m_BackendOptions;
 };
 
 } // namespace armnnDelegate
