diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
index 0ad6194620cdba695dd2ae5b89e5efb7ae95d84e..361dd2c74e6b05acd7ebdc97a38de000b58389c0 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
@@ -30,9 +30,8 @@ namespace latinime {
 
 class BigramDictContent : public SparseTableDictContent {
  public:
-    BigramDictContent(uint8_t *const *buffers, const int *bufferSizes, const bool hasHistoricalInfo,
-            const bool isUpdatable)
-            : SparseTableDictContent(buffers, bufferSizes, isUpdatable,
+    BigramDictContent(uint8_t *const *buffers, const int *bufferSizes, const bool hasHistoricalInfo)
+            : SparseTableDictContent(buffers, bufferSizes,
                       Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE,
                       Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE),
               mHasHistoricalInfo(hasHistoricalInfo) {}
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_dict_content.h
index c4b7a901c3536d399b2130512a36c75b0e105f5c..80e992c1c75f4a9d42e77c878e5eb0940592ed1f 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_dict_content.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_dict_content.h
@@ -33,8 +33,8 @@ class ProbabilityEntry;
 class ProbabilityDictContent : public SingleDictContent {
  public:
     ProbabilityDictContent(uint8_t *const buffer, const int bufferSize,
-            const bool hasHistoricalInfo, const bool isUpdatable)
-            : SingleDictContent(buffer, bufferSize, isUpdatable),
+            const bool hasHistoricalInfo)
+            : SingleDictContent(buffer, bufferSize),
               mHasHistoricalInfo(hasHistoricalInfo),
               mSize(getBuffer()->getTailPosition() / getEntrySize()) {}
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h
index 6a0e686eebd3f5acba3dc45d91b49a144fc570eb..7b12aff1627c01d291449cb9759e4d0661fdc15d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h
@@ -29,8 +29,8 @@ namespace latinime {
 
 class ShortcutDictContent : public SparseTableDictContent {
  public:
-    ShortcutDictContent(uint8_t *const *buffers, const int *bufferSizes, const bool isUpdatable)
-            : SparseTableDictContent(buffers, bufferSizes, isUpdatable,
+    ShortcutDictContent(uint8_t *const *buffers, const int *bufferSizes)
+            : SparseTableDictContent(buffers, bufferSizes,
                       Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE,
                       Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE) {}
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h
index 7c5b69f5af2d560b89b36aadd87573ee9341e3ab..69a11425f9562d110d8bd2b90f27d49dc78c5315 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h
@@ -30,7 +30,7 @@ namespace latinime {
 
 class SingleDictContent : public DictContent {
  public:
-    SingleDictContent(uint8_t *const buffer, const int bufferSize, const bool isUpdatable)
+    SingleDictContent(uint8_t *const buffer, const int bufferSize)
             : mExpandableContentBuffer(buffer, bufferSize,
                       BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE) {}
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h
index a30ae6fe368384686e01f230eb020c06f4976fd9..cdf870bd2055cebe208bd60bc0563c17273ca31a 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h
@@ -32,7 +32,7 @@ namespace latinime {
 class SparseTableDictContent : public DictContent {
  public:
     AK_FORCE_INLINE SparseTableDictContent(uint8_t *const *buffers, const int *bufferSizes,
-            const bool isUpdatable, const int sparseTableBlockSize, const int sparseTableDataSize)
+            const int sparseTableBlockSize, const int sparseTableDataSize)
             : mExpandableLookupTableBuffer(buffers[LOOKUP_TABLE_BUFFER_INDEX],
                       bufferSizes[LOOKUP_TABLE_BUFFER_INDEX],
                       BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h
index c4c93f3f89eb82f6e3385eb31f939aaf0373bc65..b2262bf1e8e2181c4b525bb6ab4db53aa4d0fe4f 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h
@@ -31,9 +31,8 @@ class TerminalPositionLookupTable : public SingleDictContent {
  public:
     typedef std::unordered_map<int, int> TerminalIdMap;
 
-    TerminalPositionLookupTable(uint8_t *const buffer, const int bufferSize,
-            const bool isUpdatable)
-            : SingleDictContent(buffer, bufferSize, isUpdatable),
+    TerminalPositionLookupTable(uint8_t *const buffer, const int bufferSize)
+            : SingleDictContent(buffer, bufferSize),
               mSize(getBuffer()->getTailPosition()
                       / Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE) {}
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
index e4087be24a3e439c34bb2af68df05f57d961805b..36ab9963a62567adfd334c4f15dba41b71ef8607 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
@@ -39,7 +39,6 @@ namespace latinime {
     }
     // TODO: take only dictDirPath, and open both header and trie files in the constructor below
     const bool isUpdatable = headerBuffer->isUpdatable();
-
     MmappedBuffer::MmappedBufferPtr bodyBuffer = MmappedBuffer::openBuffer(dictPath,
             Ver4DictConstants::BODY_FILE_EXTENSION, isUpdatable);
     if (!bodyBuffer) {
@@ -64,7 +63,7 @@ namespace latinime {
         return Ver4DictBuffersPtr(nullptr);
     }
     return Ver4DictBuffersPtr(new Ver4DictBuffers(std::move(headerBuffer), std::move(bodyBuffer),
-            isUpdatable, formatVersion, buffers, bufferSizes));
+            formatVersion, buffers, bufferSizes));
 }
 
 bool Ver4DictBuffers::flushHeaderAndDictBuffers(const char *const dictDirPath,
@@ -175,7 +174,7 @@ bool Ver4DictBuffers::flushDictBuffers(FILE *const file) const {
 
 Ver4DictBuffers::Ver4DictBuffers(MmappedBuffer::MmappedBufferPtr &&headerBuffer,
         MmappedBuffer::MmappedBufferPtr &&bodyBuffer,
-        const bool isUpdatable, const FormatUtils::FORMAT_VERSION formatVersion,
+        const FormatUtils::FORMAT_VERSION formatVersion,
         const std::vector<uint8_t *> &contentBuffers, const std::vector<int> &contentBufferSizes)
         : mHeaderBuffer(std::move(headerBuffer)), mDictBuffer(std::move(bodyBuffer)),
           mHeaderPolicy(mHeaderBuffer->getBuffer(), formatVersion),
@@ -187,18 +186,18 @@ Ver4DictBuffers::Ver4DictBuffers(MmappedBuffer::MmappedBufferPtr &&headerBuffer,
                   BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
           mTerminalPositionLookupTable(
                   contentBuffers[Ver4DictConstants::TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX],
-                  contentBufferSizes[Ver4DictConstants::TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX],
-                  isUpdatable),
+                  contentBufferSizes[
+                          Ver4DictConstants::TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX]),
           mProbabilityDictContent(
                   contentBuffers[Ver4DictConstants::PROBABILITY_BUFFER_INDEX],
                   contentBufferSizes[Ver4DictConstants::PROBABILITY_BUFFER_INDEX],
-                  mHeaderPolicy.hasHistoricalInfoOfWords(), isUpdatable),
+                  mHeaderPolicy.hasHistoricalInfoOfWords()),
           mBigramDictContent(&contentBuffers[Ver4DictConstants::BIGRAM_BUFFERS_INDEX],
                   &contentBufferSizes[Ver4DictConstants::BIGRAM_BUFFERS_INDEX],
-                  mHeaderPolicy.hasHistoricalInfoOfWords(), isUpdatable),
+                  mHeaderPolicy.hasHistoricalInfoOfWords()),
           mShortcutDictContent(&contentBuffers[Ver4DictConstants::SHORTCUT_BUFFERS_INDEX],
-                  &contentBufferSizes[Ver4DictConstants::SHORTCUT_BUFFERS_INDEX], isUpdatable),
-          mIsUpdatable(isUpdatable) {}
+                  &contentBufferSizes[Ver4DictConstants::SHORTCUT_BUFFERS_INDEX]),
+          mIsUpdatable(mDictBuffer->isUpdatable()) {}
 
 Ver4DictBuffers::Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize)
         : mHeaderBuffer(nullptr), mDictBuffer(nullptr), mHeaderPolicy(headerPolicy),
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
index d2f4f2aed7c99e7c5b9d5eb3f4ef858cc740f44e..433411cb8192172ad420c38cc1eee946a163f252 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
@@ -121,7 +121,7 @@ class Ver4DictBuffers {
 
     Ver4DictBuffers(MmappedBuffer::MmappedBufferPtr &&headerBuffer,
             MmappedBuffer::MmappedBufferPtr &&bodyBuffer,
-            const bool isUpdatable, const FormatUtils::FORMAT_VERSION formatVersion,
+            const FormatUtils::FORMAT_VERSION formatVersion,
             const std::vector<uint8_t *> &contentBuffers,
             const std::vector<int> &contentBufferSizes);