diff --git a/packages/binary/messagelayer/tangle/tangle.go b/packages/binary/messagelayer/tangle/tangle.go
index 3d64f8a55d81a069aee722b80492eaaf2c2e6b32..0351db08be19617cc18d335ab4aa250acae39cb4 100644
--- a/packages/binary/messagelayer/tangle/tangle.go
+++ b/packages/binary/messagelayer/tangle/tangle.go
@@ -139,15 +139,15 @@ func (tangle *Tangle) Prune() error {
 func (tangle *Tangle) DBStats() (solidCount int, messageCount int, avgSolidificationTime float64) {
 	var sumSolidificationTime time.Duration
 	tangle.messageMetadataStorage.ForEach(func(key []byte, cachedObject objectstorage.CachedObject) bool {
-		defer cachedObject.Release()
-		cachedMessageMetadata := &CachedMessageMetadata{CachedObject: cachedObject}
-		msgMetaData := cachedMessageMetadata.Unwrap()
-		messageCount++
-		received := msgMetaData.ReceivedTime()
-		if msgMetaData.IsSolid() {
-			solidCount++
-			sumSolidificationTime += msgMetaData.solidificationTime.Sub(received)
-		}
+		cachedObject.Consume(func(object objectstorage.StorableObject) {
+			msgMetaData := object.(*MessageMetadata)
+			messageCount++
+			received := msgMetaData.ReceivedTime()
+			if msgMetaData.IsSolid() {
+				solidCount++
+				sumSolidificationTime += msgMetaData.solidificationTime.Sub(received)
+			}
+		})
 		return true
 	})
 	avgSolidificationTime = float64(sumSolidificationTime.Milliseconds()) / float64(solidCount)