diff --git a/attn/attention.cpp b/attn/attention.cpp
index c13bf64..0806ef2 100644
--- a/attn/attention.cpp
+++ b/attn/attention.cpp
@@ -1,21 +1,16 @@
 #include <attention.hpp>
+#include <attn_config.hpp>
 
 namespace attn
 {
 
 /** @brief Main constructor. */
 Attention::Attention(AttentionType i_type, int (*i_handler)(Attention*),
-                     pdbg_target* i_target, bool i_breakpoints) :
+                     pdbg_target* i_target, Config* i_config) :
     iv_type(i_type),
-    iv_handler(i_handler), iv_target(i_target)
+    iv_handler(i_handler), iv_target(i_target), iv_config(i_config)
 
-{
-    // set attention handler configuration flags
-    if (true == i_breakpoints)
-    {
-        iv_flags |= enableBreakpoints;
-    }
-}
+{}
 
 /** @brief Get attention priority */
 int Attention::getPriority() const
@@ -23,16 +18,10 @@
     return iv_type;
 }
 
-/** @brief Get configuration flags */
-uint32_t Attention::getFlags() const
+/* @brief Get config object */
+Config* Attention::getConfig() const
 {
-    return iv_flags;
-}
-
-/** @brief Set configuration flags */
-void Attention::setFlags(uint32_t i_flags)
-{
-    iv_flags = i_flags;
+    return iv_config;
 }
 
 /* @brief Call attention handler function */
@@ -41,7 +30,7 @@
     return iv_handler(this);
 }
 
-/** @brief less than operator */
+/** @brief less than operator, for heap creation */
 bool Attention::operator<(const Attention& right) const
 {
     return (getPriority() < right.getPriority());
