diff --git a/include/buffer.hpp b/include/buffer.hpp
index 29f3e2f..37bcb9f 100644
--- a/include/buffer.hpp
+++ b/include/buffer.hpp
@@ -161,6 +161,12 @@
      * * @return Queue size - UE region size - Queue header size
      */
     virtual size_t getMaxOffset() = 0;
+
+    /** @brief The Error log queue starts after the UE region, which is where
+     * the read and write pointers are offset from relatively
+     *  @return relative offset for read and write pointers
+     */
+    virtual size_t getQueueOffset() = 0;
 };
 
 /**
@@ -186,13 +192,9 @@
     EntryPair readEntry() override;
     std::vector<EntryPair> readErrorLogs() override;
     size_t getMaxOffset() override;
+    size_t getQueueOffset() override;
 
   private:
-    /** @brief The Error log queue starts after the UE region, which is where
-     * the read and write pointers are offset from relatively
-     *  @return relative offset for read and write pointers
-     */
-    size_t getQueueOffset();
     /** @brief Calculate the checksum by XOR each bytes in the span
      *  @param[in] entry     - Span to calculate the checksum on
      *  @return calculated checksum
