diff --git a/arm_compute/runtime/BlobLifetimeManager.h b/arm_compute/runtime/BlobLifetimeManager.h
index 2dbe92d..586ad10 100644
--- a/arm_compute/runtime/BlobLifetimeManager.h
+++ b/arm_compute/runtime/BlobLifetimeManager.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -26,15 +26,16 @@
 
 #include "arm_compute/runtime/ISimpleLifetimeManager.h"
 
-#include "arm_compute/runtime/BlobMemoryPool.h"
 #include "arm_compute/runtime/Types.h"
 
-#include <cstddef>
 #include <memory>
 #include <vector>
 
 namespace arm_compute
 {
+// Forward declarations
+class IMemoryPool;
+
 /** Concrete class that tracks the lifetime of registered tensors and
  *  calculates the systems memory requirements in terms of blobs */
 class BlobLifetimeManager : public ISimpleLifetimeManager
diff --git a/arm_compute/runtime/BlobMemoryPool.h b/arm_compute/runtime/BlobMemoryPool.h
index ba97dbd..c2e0902 100644
--- a/arm_compute/runtime/BlobMemoryPool.h
+++ b/arm_compute/runtime/BlobMemoryPool.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -38,17 +38,6 @@
 // Forward declaration
 class IAllocator;
 
-/** Meta-data information for each blob */
-struct BlobInfo
-{
-    BlobInfo(size_t size_ = 0, size_t alignment_ = 0)
-        : size(size_), alignment(alignment_)
-    {
-    }
-    size_t size;      /**< Blob size */
-    size_t alignment; /**< Blob alignment */
-};
-
 /** Blob memory pool */
 class BlobMemoryPool : public IMemoryPool
 {
diff --git a/arm_compute/runtime/OffsetLifetimeManager.h b/arm_compute/runtime/OffsetLifetimeManager.h
index e39d6a0..26aeb1e 100644
--- a/arm_compute/runtime/OffsetLifetimeManager.h
+++ b/arm_compute/runtime/OffsetLifetimeManager.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -28,12 +28,12 @@
 
 #include "arm_compute/runtime/Types.h"
 
-#include <cstddef>
 #include <map>
 #include <vector>
 
 namespace arm_compute
 {
+// Forward declarations
 class IMemoryPool;
 
 /** Concrete class that tracks the lifetime of registered tensors and
@@ -61,7 +61,7 @@
     void update_blobs_and_mappings() override;
 
 private:
-    size_t _blob; /**< Memory blob size */
+    BlobInfo _blob; /**< Memory blob size */
 };
 } // namespace arm_compute
 #endif /* __ARM_COMPUTE_OFFSETLIFETIMEMANAGER_H__ */
diff --git a/arm_compute/runtime/OffsetMemoryPool.h b/arm_compute/runtime/OffsetMemoryPool.h
index 480d424..bc09de6 100644
--- a/arm_compute/runtime/OffsetMemoryPool.h
+++ b/arm_compute/runtime/OffsetMemoryPool.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -30,6 +30,7 @@
 #include "arm_compute/runtime/Types.h"
 
 #include <cstddef>
+#include <memory>
 
 namespace arm_compute
 {
@@ -44,9 +45,9 @@
      * @note allocator should outlive the memory pool
      *
      * @param[in] allocator Backing memory allocator
-     * @param[in] blob_size Size of the memory be allocated
+     * @param[in] blob_info Configuration information of the blob to be allocated
      */
-    OffsetMemoryPool(IAllocator *allocator, size_t blob_size);
+    OffsetMemoryPool(IAllocator *allocator, BlobInfo blob_info);
     /** Default Destructor */
     ~OffsetMemoryPool() = default;
     /** Prevent instances of this class to be copy constructed */
@@ -67,7 +68,7 @@
 private:
     IAllocator                    *_allocator; /**< Allocator to use for internal allocation */
     std::unique_ptr<IMemoryRegion> _blob;      /**< Memory blob */
-    size_t                         _blob_size; /**< Sizes of the allocated memory blob */
+    BlobInfo                       _blob_info; /**< Information for the blob to allocate */
 };
 } // namespace arm_compute
 #endif /* __ARM_COMPUTE_OFFSETMEMORYPOOL_H__ */
diff --git a/arm_compute/runtime/Types.h b/arm_compute/runtime/Types.h
index f2607c0..fece513 100644
--- a/arm_compute/runtime/Types.h
+++ b/arm_compute/runtime/Types.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -46,5 +46,17 @@
 
 /** A map of the groups and memory mappings */
 using GroupMappings = std::map<size_t, MemoryMappings>;
+
+/** Meta-data information for each blob */
+struct BlobInfo
+{
+    BlobInfo(size_t size_ = 0, size_t alignment_ = 0, size_t owners_ = 1)
+        : size(size_), alignment(alignment_), owners(owners_)
+    {
+    }
+    size_t size;      /**< Blob size */
+    size_t alignment; /**< Blob alignment */
+    size_t owners;    /**< Number of owners in parallel of the blob */
+};
 } // namespace arm_compute
 #endif /* __ARM_COMPUTE_RUNTIME_TYPES_H__ */
