Move dictionary code to top level dictionary dir.

Bug: 18725954
Change-Id: Ia442ba4b5d84311057d83edf6e7aeb151d6a820b
diff --git a/native/jni/NativeFileList.mk b/native/jni/NativeFileList.mk
index 0be7153..d8b69bf 100644
--- a/native/jni/NativeFileList.mk
+++ b/native/jni/NativeFileList.mk
@@ -20,6 +20,52 @@
     jni_common.cpp
 
 LATIN_IME_CORE_SRC_FILES := \
+    $(addprefix dictionary/header/, \
+        header_policy.cpp \
+        header_read_write_utils.cpp) \
+    dictionary/property/ngram_context.cpp \
+    dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp \
+    $(addprefix dictionary/structure/pt_common/, \
+        bigram/bigram_list_read_write_utils.cpp \
+        dynamic_pt_gc_event_listeners.cpp \
+        dynamic_pt_reading_helper.cpp \
+        dynamic_pt_reading_utils.cpp \
+        dynamic_pt_updating_helper.cpp \
+        dynamic_pt_writing_utils.cpp \
+        patricia_trie_reading_utils.cpp \
+        shortcut/shortcut_list_reading_utils.cpp) \
+    $(addprefix dictionary/structure/v2/, \
+        patricia_trie_policy.cpp \
+        ver2_patricia_trie_node_reader.cpp \
+        ver2_pt_node_array_reader.cpp) \
+    $(addprefix dictionary/structure/v4/, \
+        ver4_dict_buffers.cpp \
+        ver4_dict_constants.cpp \
+        ver4_patricia_trie_node_reader.cpp \
+        ver4_patricia_trie_node_writer.cpp \
+        ver4_patricia_trie_policy.cpp \
+        ver4_patricia_trie_reading_utils.cpp \
+        ver4_patricia_trie_writing_helper.cpp \
+        ver4_pt_node_array_reader.cpp) \
+    $(addprefix dictionary/structure/v4/content/, \
+        dynamic_language_model_probability_utils.cpp \
+        language_model_dict_content.cpp \
+        language_model_dict_content_global_counters.cpp \
+        shortcut_dict_content.cpp \
+        sparse_table_dict_content.cpp \
+        terminal_position_lookup_table.cpp) \
+    $(addprefix dictionary/utils/, \
+        buffer_with_extendable_buffer.cpp \
+        byte_array_utils.cpp \
+        dict_file_writing_utils.cpp \
+        file_utils.cpp \
+        forgetting_curve_utils.cpp \
+        format_utils.cpp \
+        mmapped_buffer.cpp \
+        multi_bigram_map.cpp \
+        probability_utils.cpp \
+        sparse_table.cpp \
+        trie_map.cpp ) \
     suggest/core/suggest.cpp \
     $(addprefix suggest/core/dicnode/, \
         dic_node.cpp \
@@ -29,8 +75,7 @@
         dictionary.cpp \
         dictionary_utils.cpp \
         digraph_utils.cpp \
-        error_type_utils.cpp \
-        multi_bigram_map.cpp) \
+        error_type_utils.cpp ) \
     $(addprefix suggest/core/layout/, \
         additional_proximity_chars.cpp \
         proximity_info.cpp \
@@ -39,54 +84,9 @@
         proximity_info_state_utils.cpp) \
     suggest/core/policy/weighting.cpp \
     suggest/core/session/dic_traverse_session.cpp \
-    suggest/core/session/ngram_context.cpp \
     $(addprefix suggest/core/result/, \
         suggestion_results.cpp \
         suggestions_output_utils.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/, \
-        header/header_policy.cpp \
-        header/header_read_write_utils.cpp \
-        structure/dictionary_structure_with_buffer_policy_factory.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/pt_common/, \
-        bigram/bigram_list_read_write_utils.cpp \
-        dynamic_pt_gc_event_listeners.cpp \
-        dynamic_pt_reading_helper.cpp \
-        dynamic_pt_reading_utils.cpp \
-        dynamic_pt_updating_helper.cpp \
-        dynamic_pt_writing_utils.cpp \
-        patricia_trie_reading_utils.cpp \
-        shortcut/shortcut_list_reading_utils.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/v2/, \
-        patricia_trie_policy.cpp \
-        ver2_patricia_trie_node_reader.cpp \
-        ver2_pt_node_array_reader.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/v4/, \
-        ver4_dict_buffers.cpp \
-        ver4_dict_constants.cpp \
-        ver4_patricia_trie_node_reader.cpp \
-        ver4_patricia_trie_node_writer.cpp \
-        ver4_patricia_trie_policy.cpp \
-        ver4_patricia_trie_reading_utils.cpp \
-        ver4_patricia_trie_writing_helper.cpp \
-        ver4_pt_node_array_reader.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/v4/content/, \
-        dynamic_language_model_probability_utils.cpp \
-        language_model_dict_content.cpp \
-        language_model_dict_content_global_counters.cpp \
-        shortcut_dict_content.cpp \
-        sparse_table_dict_content.cpp \
-        terminal_position_lookup_table.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/utils/, \
-        buffer_with_extendable_buffer.cpp \
-        byte_array_utils.cpp \
-        dict_file_writing_utils.cpp \
-        file_utils.cpp \
-        forgetting_curve_utils.cpp \
-        format_utils.cpp \
-        mmapped_buffer.cpp \
-        probability_utils.cpp \
-        sparse_table.cpp \
-        trie_map.cpp ) \
     suggest/policyimpl/gesture/gesture_suggest_policy_factory.cpp \
     $(addprefix suggest/policyimpl/typing/, \
         scoring_params.cpp \
@@ -102,7 +102,7 @@
         time_keeper.cpp)
 
 LATIN_IME_CORE_SRC_FILES_BACKWARD_V402 := \
-    $(addprefix suggest/policyimpl/dictionary/structure/backward/v402/, \
+    $(addprefix dictionary/structure/backward/v402/, \
         ver4_dict_buffers.cpp \
         ver4_dict_constants.cpp \
         ver4_patricia_trie_node_reader.cpp \
@@ -111,34 +111,34 @@
         ver4_patricia_trie_reading_utils.cpp \
         ver4_patricia_trie_writing_helper.cpp \
         ver4_pt_node_array_reader.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/backward/v402/content/, \
+    $(addprefix dictionary/structure/backward/v402/content/, \
         bigram_dict_content.cpp \
         probability_dict_content.cpp \
         shortcut_dict_content.cpp \
         sparse_table_dict_content.cpp \
         terminal_position_lookup_table.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/backward/v402/bigram/, \
+    $(addprefix dictionary/structure/backward/v402/bigram/, \
         ver4_bigram_list_policy.cpp)
 
 LATIN_IME_CORE_SRC_FILES += $(LATIN_IME_CORE_SRC_FILES_BACKWARD_V402)
 
 LATIN_IME_CORE_TEST_FILES := \
     defines_test.cpp \
+    dictionary/header/header_read_write_utils_test.cpp \
+    dictionary/structure/v4/content/language_model_dict_content_test.cpp \
+    dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp \
+    dictionary/structure/v4/content/probability_entry_test.cpp \
+    dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp \
+    dictionary/utils/bloom_filter_test.cpp \
+    dictionary/utils/buffer_with_extendable_buffer_test.cpp \
+    dictionary/utils/byte_array_utils_test.cpp \
+    dictionary/utils/format_utils_test.cpp \
+    dictionary/utils/probability_utils_test.cpp \
+    dictionary/utils/sparse_table_test.cpp \
+    dictionary/utils/trie_map_test.cpp \
     suggest/core/dicnode/dic_node_pool_test.cpp \
-    suggest/core/dictionary/bloom_filter_test.cpp \
     suggest/core/layout/geometry_utils_test.cpp \
     suggest/core/layout/normal_distribution_2d_test.cpp \
-    suggest/policyimpl/dictionary/header/header_read_write_utils_test.cpp \
-    suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_test.cpp \
-    suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp \
-    suggest/policyimpl/dictionary/structure/v4/content/probability_entry_test.cpp \
-    suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp \
-    suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer_test.cpp \
-    suggest/policyimpl/dictionary/utils/byte_array_utils_test.cpp \
-    suggest/policyimpl/dictionary/utils/format_utils_test.cpp \
-    suggest/policyimpl/dictionary/utils/probability_utils_test.cpp \
-    suggest/policyimpl/dictionary/utils/sparse_table_test.cpp \
-    suggest/policyimpl/dictionary/utils/trie_map_test.cpp \
     suggest/policyimpl/utils/damerau_levenshtein_edit_distance_policy_test.cpp \
     utils/autocorrection_threshold_utils_test.cpp \
     utils/char_utils_test.cpp \
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 8f1e35e..3341e11 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -22,15 +22,15 @@
 #include <vector>
 
 #include "defines.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/property/word_property.h"
+#include "dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
 #include "jni.h"
 #include "jni_common.h"
 #include "suggest/core/dictionary/dictionary.h"
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/core/dictionary/property/word_property.h"
 #include "suggest/core/result/suggestion_results.h"
-#include "suggest/core/session/ngram_context.h"
 #include "suggest/core/suggest_options.h"
-#include "suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
 #include "utils/char_utils.h"
 #include "utils/int_array_view.h"
 #include "utils/jni_data_utils.h"
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp
index 68bf417..0885f2d 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp
@@ -19,9 +19,9 @@
 #include "com_android_inputmethod_latin_BinaryDictionaryUtils.h"
 
 #include "defines.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
 #include "jni.h"
 #include "jni_common.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
 #include "utils/autocorrection_threshold_utils.h"
 #include "utils/char_utils.h"
 #include "utils/jni_data_utils.h"
diff --git a/native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp b/native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp
index 3c6bff3..45f5492 100644
--- a/native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp
+++ b/native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp
@@ -19,10 +19,10 @@
 #include "com_android_inputmethod_latin_DicTraverseSession.h"
 
 #include "defines.h"
+#include "dictionary/property/ngram_context.h"
 #include "jni.h"
 #include "jni_common.h"
 #include "suggest/core/session/dic_traverse_session.h"
-#include "suggest/core/session/ngram_context.h"
 
 namespace latinime {
 class Dictionary;
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp b/native/jni/src/dictionary/header/header_policy.cpp
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp
rename to native/jni/src/dictionary/header/header_policy.cpp
index c93f310..d4f84d3 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp
+++ b/native/jni/src/dictionary/header/header_policy.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
+#include "dictionary/header/header_policy.h"
 
 #include <algorithm>
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h b/native/jni/src/dictionary/header/header_policy.h
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h
rename to native/jni/src/dictionary/header/header_policy.h
index f76931b..47cc919 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h
+++ b/native/jni/src/dictionary/header/header_policy.h
@@ -20,10 +20,10 @@
 #include <cstdint>
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
-#include "suggest/policyimpl/dictionary/utils/entry_counters.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
+#include "dictionary/header/header_read_write_utils.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/utils/entry_counters.h"
+#include "dictionary/utils/format_utils.h"
 #include "utils/char_utils.h"
 #include "utils/time_keeper.h"
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp b/native/jni/src/dictionary/header/header_read_write_utils.cpp
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp
rename to native/jni/src/dictionary/header/header_read_write_utils.cpp
index 19ed0d4..779f8b8 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp
+++ b/native/jni/src/dictionary/header/header_read_write_utils.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
+#include "dictionary/header/header_read_write_utils.h"
 
 #include <cctype>
 #include <cstdio>
@@ -22,8 +22,8 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/byte_array_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h b/native/jni/src/dictionary/header/header_read_write_utils.h
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h
rename to native/jni/src/dictionary/header/header_read_write_utils.h
index 5dd91b2..f67d614 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h
+++ b/native/jni/src/dictionary/header/header_read_write_utils.h
@@ -20,8 +20,8 @@
 #include <cstdint>
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/utils/format_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/core/policy/dictionary_bigrams_structure_policy.h b/native/jni/src/dictionary/interface/dictionary_bigrams_structure_policy.h
similarity index 100%
rename from native/jni/src/suggest/core/policy/dictionary_bigrams_structure_policy.h
rename to native/jni/src/dictionary/interface/dictionary_bigrams_structure_policy.h
diff --git a/native/jni/src/suggest/core/policy/dictionary_header_structure_policy.h b/native/jni/src/dictionary/interface/dictionary_header_structure_policy.h
similarity index 100%
rename from native/jni/src/suggest/core/policy/dictionary_header_structure_policy.h
rename to native/jni/src/dictionary/interface/dictionary_header_structure_policy.h
diff --git a/native/jni/src/suggest/core/policy/dictionary_shortcuts_structure_policy.h b/native/jni/src/dictionary/interface/dictionary_shortcuts_structure_policy.h
similarity index 100%
rename from native/jni/src/suggest/core/policy/dictionary_shortcuts_structure_policy.h
rename to native/jni/src/dictionary/interface/dictionary_shortcuts_structure_policy.h
diff --git a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h b/native/jni/src/dictionary/interface/dictionary_structure_with_buffer_policy.h
similarity index 94%
rename from native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h
rename to native/jni/src/dictionary/interface/dictionary_structure_with_buffer_policy.h
index 33a0fbc..ace4849 100644
--- a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h
+++ b/native/jni/src/dictionary/interface/dictionary_structure_with_buffer_policy.h
@@ -20,10 +20,10 @@
 #include <memory>
 
 #include "defines.h"
-#include "suggest/core/dictionary/binary_dictionary_shortcut_iterator.h"
-#include "suggest/core/dictionary/property/historical_info.h"
-#include "suggest/core/dictionary/property/word_property.h"
-#include "suggest/core/dictionary/word_attributes.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/property/word_attributes.h"
+#include "dictionary/property/word_property.h"
+#include "dictionary/utils/binary_dictionary_shortcut_iterator.h"
 #include "utils/int_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/core/dictionary/ngram_listener.h b/native/jni/src/dictionary/interface/ngram_listener.h
similarity index 100%
rename from native/jni/src/suggest/core/dictionary/ngram_listener.h
rename to native/jni/src/dictionary/interface/ngram_listener.h
diff --git a/native/jni/src/suggest/core/dictionary/property/historical_info.h b/native/jni/src/dictionary/property/historical_info.h
similarity index 100%
rename from native/jni/src/suggest/core/dictionary/property/historical_info.h
rename to native/jni/src/dictionary/property/historical_info.h
diff --git a/native/jni/src/suggest/core/session/ngram_context.cpp b/native/jni/src/dictionary/property/ngram_context.cpp
similarity index 97%
rename from native/jni/src/suggest/core/session/ngram_context.cpp
rename to native/jni/src/dictionary/property/ngram_context.cpp
index 17ef9ae..7b9c3ef 100644
--- a/native/jni/src/suggest/core/session/ngram_context.cpp
+++ b/native/jni/src/dictionary/property/ngram_context.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/core/session/ngram_context.h"
+#include "dictionary/property/ngram_context.h"
 
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
 #include "utils/char_utils.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/core/session/ngram_context.h b/native/jni/src/dictionary/property/ngram_context.h
similarity index 100%
rename from native/jni/src/suggest/core/session/ngram_context.h
rename to native/jni/src/dictionary/property/ngram_context.h
diff --git a/native/jni/src/suggest/core/dictionary/property/ngram_property.h b/native/jni/src/dictionary/property/ngram_property.h
similarity index 94%
rename from native/jni/src/suggest/core/dictionary/property/ngram_property.h
rename to native/jni/src/dictionary/property/ngram_property.h
index e67b4da..5f259ec 100644
--- a/native/jni/src/suggest/core/dictionary/property/ngram_property.h
+++ b/native/jni/src/dictionary/property/ngram_property.h
@@ -20,8 +20,8 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/core/dictionary/property/historical_info.h"
-#include "suggest/core/session/ngram_context.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/property/ngram_context.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/core/dictionary/property/unigram_property.h b/native/jni/src/dictionary/property/unigram_property.h
similarity index 98%
rename from native/jni/src/suggest/core/dictionary/property/unigram_property.h
rename to native/jni/src/dictionary/property/unigram_property.h
index f194f97..92f61b8 100644
--- a/native/jni/src/suggest/core/dictionary/property/unigram_property.h
+++ b/native/jni/src/dictionary/property/unigram_property.h
@@ -20,7 +20,7 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/core/dictionary/property/historical_info.h"
+#include "dictionary/property/historical_info.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/core/dictionary/word_attributes.h b/native/jni/src/dictionary/property/word_attributes.h
similarity index 100%
rename from native/jni/src/suggest/core/dictionary/word_attributes.h
rename to native/jni/src/dictionary/property/word_attributes.h
diff --git a/native/jni/src/suggest/core/dictionary/property/word_property.h b/native/jni/src/dictionary/property/word_property.h
similarity index 93%
rename from native/jni/src/suggest/core/dictionary/property/word_property.h
rename to native/jni/src/dictionary/property/word_property.h
index 9efc7f3..3028e02 100644
--- a/native/jni/src/suggest/core/dictionary/property/word_property.h
+++ b/native/jni/src/dictionary/property/word_property.h
@@ -20,8 +20,8 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/core/dictionary/property/ngram_property.h"
-#include "suggest/core/dictionary/property/unigram_property.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/property/unigram_property.h"
 #include "utils/int_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/Readme.txt b/native/jni/src/dictionary/structure/backward/v402/Readme.txt
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/Readme.txt
rename to native/jni/src/dictionary/structure/backward/v402/Readme.txt
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp b/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp
similarity index 93%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp
rename to native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp
index bc0f47f..60749bc 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp
@@ -19,18 +19,18 @@
  * Do not edit this file other than updating policy's interface.
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp
+ *   dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
+#include "dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
 
-#include "suggest/core/dictionary/property/ngram_property.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
+#include "dictionary/structure/backward/v402/content/bigram_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h b/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h
rename to native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h
index aac6f54..58c88ce 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h
+++ b/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h
@@ -26,8 +26,8 @@
 #define LATINIME_BACKWARD_V402_VER4_BIGRAM_LIST_POLICY_H
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h"
+#include "dictionary/interface/dictionary_bigrams_structure_policy.h"
+#include "dictionary/structure/backward/v402/content/bigram_entry.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.cpp b/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.cpp
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.cpp
rename to native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.cpp
index 15ac883..7fa85de 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.cpp
@@ -18,12 +18,12 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
+ *   dictionary/structure/v4/content/bigram_dict_content.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h"
+#include "dictionary/structure/backward/v402/content/bigram_dict_content.h"
 
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h
rename to native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.h
index b554e56..14f334a 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h
+++ b/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.h
@@ -18,17 +18,17 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
+ *   dictionary/structure/v4/content/bigram_dict_content.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_BIGRAM_DICT_CONTENT_H
 #define LATINIME_BACKWARD_V402_BIGRAM_DICT_CONTENT_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/structure/backward/v402/content/bigram_entry.h"
+#include "dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h b/native/jni/src/dictionary/structure/backward/v402/content/bigram_entry.h
similarity index 93%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h
rename to native/jni/src/dictionary/structure/backward/v402/content/bigram_entry.h
index 480095a..36ad855 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h
+++ b/native/jni/src/dictionary/structure/backward/v402/content/bigram_entry.h
@@ -18,15 +18,15 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/bigram_entry.h
+ *   dictionary/structure/v4/content/bigram_entry.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_BIGRAM_ENTRY_H
 #define LATINIME_BACKWARD_V402_BIGRAM_ENTRY_H
 
 #include "defines.h"
-#include "suggest/core/dictionary/property/historical_info.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/dict_content.h
similarity index 94%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h
rename to native/jni/src/dictionary/structure/backward/v402/content/dict_content.h
index 0f2f255..d3b84fa 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h
+++ b/native/jni/src/dictionary/structure/backward/v402/content/dict_content.h
@@ -18,7 +18,7 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/dict_content.h
+ *   dictionary/structure/v4/content/dict_content.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_DICT_CONTENT_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp b/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.cpp
similarity index 92%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp
rename to native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.cpp
index 61ef4aa..b167f0a 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.cpp
@@ -18,15 +18,15 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/probability_dict_content.cpp
+ *   dictionary/structure/v4/content/probability_dict_content.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h"
+#include "dictionary/structure/backward/v402/content/probability_dict_content.h"
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/structure/backward/v402/content/probability_entry.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.h
similarity index 83%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h
rename to native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.h
index 3734797..464b29f 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h
+++ b/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.h
@@ -18,17 +18,17 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/probability_dict_content.h
+ *   dictionary/structure/v4/content/probability_dict_content.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_PROBABILITY_DICT_CONTENT_H
 #define LATINIME_BACKWARD_V402_PROBABILITY_DICT_CONTENT_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/structure/backward/v402/content/single_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h b/native/jni/src/dictionary/structure/backward/v402/content/probability_entry.h
similarity index 92%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h
rename to native/jni/src/dictionary/structure/backward/v402/content/probability_entry.h
index 4111a49..94e36bf 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h
+++ b/native/jni/src/dictionary/structure/backward/v402/content/probability_entry.h
@@ -18,15 +18,15 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h
+ *   dictionary/structure/v4/content/probability_entry.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H
 #define LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H
 
 #include "defines.h"
-#include "suggest/core/dictionary/property/historical_info.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp b/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp
similarity index 96%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp
rename to native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp
index 56bc8b9..e538a02 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp
@@ -18,12 +18,12 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.cpp
+ *   dictionary/structure/v4/content/shortcut_dict_content.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h"
+#include "dictionary/structure/backward/v402/content/shortcut_dict_content.h"
 
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h
rename to native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.h
index 179cec5..3b725e8 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h
+++ b/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.h
@@ -18,16 +18,16 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h
+ *   dictionary/structure/v4/content/shortcut_dict_content.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_SHORTCUT_DICT_CONTENT_H
 #define LATINIME_BACKWARD_V402_SHORTCUT_DICT_CONTENT_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/single_dict_content.h
similarity index 84%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h
rename to native/jni/src/dictionary/structure/backward/v402/content/single_dict_content.h
index 49f4468..89df2a1 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h
+++ b/native/jni/src/dictionary/structure/backward/v402/content/single_dict_content.h
@@ -18,18 +18,18 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h
+ *   dictionary/structure/v4/content/single_dict_content.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_SINGLE_DICT_CONTENT_H
 #define LATINIME_BACKWARD_V402_SINGLE_DICT_CONTENT_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
+#include "dictionary/structure/backward/v402/content/dict_content.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp b/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp
similarity index 89%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp
rename to native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp
index 7c9b496..280f0f8 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp
@@ -18,10 +18,10 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.cpp
+ *   dictionary/structure/v4/content/sparse_table_dict_content.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
+#include "dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.h
similarity index 90%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h
rename to native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.h
index 3c626df..4b5af87 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h
+++ b/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.h
@@ -18,19 +18,19 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h
+ *   dictionary/structure/v4/content/sparse_table_dict_content.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_SPARSE_TABLE_DICT_CONTENT_H
 #define LATINIME_BACKWARD_V402_SPARSE_TABLE_DICT_CONTENT_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/sparse_table.h"
+#include "dictionary/structure/backward/v402/content/dict_content.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
+#include "dictionary/utils/sparse_table.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp b/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp
rename to native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp
index a9f8417..30b72bb 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp
@@ -18,13 +18,13 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
+ *   dictionary/structure/v4/content/terminal_position_lookup_table.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h b/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h
similarity index 88%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h
rename to native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h
index eadfe0f..641c749 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h
+++ b/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h
@@ -18,7 +18,7 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h
+ *   dictionary/structure/v4/content/terminal_position_lookup_table.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_TERMINAL_POSITION_LOOKUP_TABLE_H
@@ -27,8 +27,8 @@
 #include <unordered_map>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/structure/backward/v402/content/single_dict_content.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h b/native/jni/src/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h
similarity index 90%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h
rename to native/jni/src/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h
index 941fda7..8cda8c5 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h
+++ b/native/jni/src/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h
@@ -19,17 +19,17 @@
  * Do not edit this file other than updating policy's interface.
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
+ *   dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_VER4_SHORTCUT_LIST_POLICY_H
 #define LATINIME_BACKWARD_V402_VER4_SHORTCUT_LIST_POLICY_H
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
+#include "dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
+#include "dictionary/structure/backward/v402/content/shortcut_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.cpp
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.cpp
rename to native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.cpp
index 3dfbd1c..4a9704f 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.cpp
@@ -18,18 +18,18 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
+ *   dictionary/structure/v4/ver4_dict_buffers.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
 
 #include <cerrno>
 #include <cstring>
 #include <sys/stat.h>
 #include <sys/types.h>
 
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/file_utils.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.h
similarity index 86%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h
rename to native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.h
index e775be5..0d09fee 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.h
@@ -18,7 +18,7 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
+ *   dictionary/structure/v4/ver4_dict_buffers.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_VER4_DICT_BUFFER_H
@@ -27,14 +27,14 @@
 #include <memory>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/backward/v402/content/bigram_dict_content.h"
+#include "dictionary/structure/backward/v402/content/probability_dict_content.h"
+#include "dictionary/structure/backward/v402/content/shortcut_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/mmapped_buffer.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.cpp
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.cpp
rename to native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.cpp
index 81d85f4..2948d07 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.cpp
@@ -18,10 +18,10 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.cpp
+ *   dictionary/structure/v4/ver4_dict_constants.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.h
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h
rename to native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.h
index 88ebd6a..15581d8 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.h
@@ -18,7 +18,7 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h
+ *   dictionary/structure/v4/ver4_dict_constants.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_VER4_DICT_CONSTANTS_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp
similarity index 83%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp
index 5c639b1..871ef7a 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp
@@ -18,19 +18,19 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
+ *   dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
 
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/backward/v402/content/probability_dict_content.h"
+#include "dictionary/structure/backward/v402/content/probability_entry.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h
index 1999a51..367d6f9 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h
@@ -18,15 +18,15 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
+ *   dictionary/structure/v4/ver4_patricia_trie_node_reader.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H
 #define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp
similarity index 94%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp
index d558b94..e3ab5ec 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp
@@ -18,23 +18,23 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
+ *   dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
 
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
+#include "dictionary/structure/backward/v402/content/probability_entry.h"
+#include "dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h
similarity index 93%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h
index d0bab50..db3cea1 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h
@@ -18,17 +18,17 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
+ *   dictionary/structure/v4/ver4_patricia_trie_node_writer.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_WRITER_H
 #define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_WRITER_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
+#include "dictionary/structure/backward/v402/content/probability_entry.h"
 #include "utils/int_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
similarity index 96%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
index 051aed4..6fb9cff 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
@@ -19,25 +19,25 @@
  * Do not edit this file other than updating policy's interface.
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
+ *   dictionary/structure/v4/ver4_patricia_trie_policy.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_policy.h"
 
 #include <vector>
 
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_vector.h"
-#include "suggest/core/dictionary/multi_bigram_map.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/dictionary/property/ngram_property.h"
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/core/dictionary/property/word_property.h"
-#include "suggest/core/session/ngram_context.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/property/word_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/utils/multi_bigram_map.h"
+#include "dictionary/utils/probability_utils.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
similarity index 83%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
index 80b1111..bce5f6b 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
@@ -19,7 +19,7 @@
  * Do not edit this file other than updating policy's interface.
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h
+ *   dictionary/structure/v4/ver4_patricia_trie_policy.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_POLICY_H
@@ -28,20 +28,20 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h"
-#include "suggest/core/dictionary/binary_dictionary_shortcut_iterator.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/entry_counters.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
+#include "dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
+#include "dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h"
+#include "dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
+#include "dictionary/utils/binary_dictionary_bigrams_iterator.h"
+#include "dictionary/utils/binary_dictionary_shortcut_iterator.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/entry_counters.h"
 #include "utils/int_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp
similarity index 80%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp
index 80d5311..b8a4cf8 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp
@@ -18,12 +18,12 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
+ *   dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
 
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/byte_array_utils.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h
similarity index 94%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h
index 3579c26..c3e736b 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h
@@ -18,7 +18,7 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
+ *   dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_READING_UTILS_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp
similarity index 92%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp
index 985c168..c0af9ea 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp
@@ -18,25 +18,25 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
+ *   dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h"
 
 #include <cstring>
 #include <queue>
 
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
+#include "dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/file_utils.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h
similarity index 92%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h
rename to native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h
index 1aad33e..f2b8738 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h
@@ -18,16 +18,16 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
+ *   dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_WRITING_HELPER_H
 #define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_WRITING_HELPER_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/utils/entry_counters.h"
+#include "dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/utils/entry_counters.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp
similarity index 88%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp
rename to native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp
index 537a6d4..d27d708 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp
@@ -18,14 +18,14 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
+ *   dictionary/structure/v4/ver4_pt_node_array_reader.cpp
  */
 
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
+#include "dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h b/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h
rename to native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h
index 4f80568..0039bf8 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h
@@ -18,14 +18,14 @@
  * !!!!! DO NOT EDIT THIS FILE !!!!!
  *
  * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h
+ *   dictionary/structure/v4/ver4_pt_node_array_reader.h
  */
 
 #ifndef LATINIME_BACKWARD_V402_VER4_PT_NODE_ARRAY_READER_H
 #define LATINIME_BACKWARD_V402_VER4_PT_NODE_ARRAY_READER_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h"
+#include "dictionary/structure/pt_common/pt_node_array_reader.h"
 
 namespace latinime {
 namespace backward {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp b/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
similarity index 89%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
rename to native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
index 9a9a21b..4470e85 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
+++ b/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
@@ -14,23 +14,23 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
+#include "dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
 
 #include <climits>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/v2/patricia_trie_policy.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_policy.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/file_utils.h"
+#include "dictionary/utils/format_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h b/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h
similarity index 90%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h
rename to native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h
index 768454d..b0c04c0 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h
+++ b/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h
@@ -20,10 +20,10 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/utils/format_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp b/native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp
similarity index 93%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp
rename to native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp
index 1b2f857..64f9b66 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp
+++ b/native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
+#include "dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
 
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h b/native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h
rename to native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp
similarity index 93%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp
index db1a802..b5e2e9d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
+#include "dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
 
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h
index b8a4a92..8c7ad96 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h
@@ -20,9 +20,9 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp
index 5e4a4b1..294bc6e 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h"
+#include "dictionary/structure/pt_common/pt_node_array_reader.h"
 #include "utils/char_utils.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.h
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.h
index 21c287f..d8ddc7c 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.h
@@ -21,8 +21,8 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp
similarity index 94%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp
index 3586b50..3eb55ed 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/byte_array_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
index e524e86..ccad345 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
+#include "dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
 
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
index db5f6ab..e8cf98c 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
@@ -18,7 +18,7 @@
 #define LATINIME_DYNAMIC_PT_UPDATING_HELPER_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
 #include "utils/int_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp
similarity index 96%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp
index 664aeeb..ea760a5 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
 
 #include <cstddef>
 #include <cstdint>
 #include <cstdlib>
 
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.h
similarity index 96%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.h
index 362fbd1..b4817af 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.h
@@ -20,7 +20,7 @@
 #include <cstddef>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp b/native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
rename to native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
index b8d78bf..e2807c4 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
+++ b/native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/interface/dictionary_bigrams_structure_policy.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
+#include "dictionary/utils/byte_array_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h b/native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h
rename to native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h b/native/jni/src/dictionary/structure/pt_common/pt_node_array_reader.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h
rename to native/jni/src/dictionary/structure/pt_common/pt_node_array_reader.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h b/native/jni/src/dictionary/structure/pt_common/pt_node_params.h
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h
rename to native/jni/src/dictionary/structure/pt_common/pt_node_params.h
index e52706e..905deb1 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h
+++ b/native/jni/src/dictionary/structure/pt_common/pt_node_params.h
@@ -20,9 +20,9 @@
 #include <cstring>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
 #include "utils/char_utils.h"
 #include "utils/int_array_view.h"
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h b/native/jni/src/dictionary/structure/pt_common/pt_node_reader.h
similarity index 93%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h
rename to native/jni/src/dictionary/structure/pt_common/pt_node_reader.h
index 31299a7..15da19e 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h
+++ b/native/jni/src/dictionary/structure/pt_common/pt_node_reader.h
@@ -19,7 +19,7 @@
 
 #include "defines.h"
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h b/native/jni/src/dictionary/structure/pt_common/pt_node_writer.h
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h
rename to native/jni/src/dictionary/structure/pt_common/pt_node_writer.h
index 954db9b..e6cad25 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h
+++ b/native/jni/src/dictionary/structure/pt_common/pt_node_writer.h
@@ -20,7 +20,7 @@
 #include <unordered_map>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
 #include "utils/int_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp b/native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp
similarity index 92%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp
rename to native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp
index 40b8720..14428ed 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp
+++ b/native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
+#include "dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
 
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/byte_array_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h b/native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h
rename to native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/bigram/bigram_list_policy.h b/native/jni/src/dictionary/structure/v2/bigram/bigram_list_policy.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/bigram/bigram_list_policy.h
rename to native/jni/src/dictionary/structure/v2/bigram/bigram_list_policy.h
index e260843..25081fa 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/bigram/bigram_list_policy.h
+++ b/native/jni/src/dictionary/structure/v2/bigram/bigram_list_policy.h
@@ -20,8 +20,8 @@
 #include <cstdint>
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
+#include "dictionary/interface/dictionary_bigrams_structure_policy.h"
+#include "dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp b/native/jni/src/dictionary/structure/v2/patricia_trie_policy.cpp
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
rename to native/jni/src/dictionary/structure/v2/patricia_trie_policy.cpp
index 1a51aca..4e8b96b 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
+++ b/native/jni/src/dictionary/structure/v2/patricia_trie_policy.cpp
@@ -14,18 +14,18 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h"
+#include "dictionary/structure/v2/patricia_trie_policy.h"
 
 #include "defines.h"
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_vector.h"
-#include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h"
-#include "suggest/core/dictionary/multi_bigram_map.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/session/ngram_context.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/utils/binary_dictionary_bigrams_iterator.h"
+#include "dictionary/utils/multi_bigram_map.h"
+#include "dictionary/utils/probability_utils.h"
 #include "utils/char_utils.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h b/native/jni/src/dictionary/structure/v2/patricia_trie_policy.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h
rename to native/jni/src/dictionary/structure/v2/patricia_trie_policy.h
index 8933962..8edfa7d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h
+++ b/native/jni/src/dictionary/structure/v2/patricia_trie_policy.h
@@ -21,14 +21,14 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v2/bigram/bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v2/shortcut/shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/structure/v2/bigram/bigram_list_policy.h"
+#include "dictionary/structure/v2/shortcut/shortcut_list_policy.h"
+#include "dictionary/structure/v2/ver2_patricia_trie_node_reader.h"
+#include "dictionary/structure/v2/ver2_pt_node_array_reader.h"
+#include "dictionary/utils/format_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
 #include "utils/byte_array_view.h"
 #include "utils/int_array_view.h"
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/shortcut/shortcut_list_policy.h b/native/jni/src/dictionary/structure/v2/shortcut/shortcut_list_policy.h
similarity index 93%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/shortcut/shortcut_list_policy.h
rename to native/jni/src/dictionary/structure/v2/shortcut/shortcut_list_policy.h
index 5319dd2..995b1ed 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/shortcut/shortcut_list_policy.h
+++ b/native/jni/src/dictionary/structure/v2/shortcut/shortcut_list_policy.h
@@ -20,8 +20,8 @@
 #include <cstdint>
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
+#include "dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp b/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
rename to native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
index 90d4687..cbb8ead 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
+++ b/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h"
+#include "dictionary/structure/v2/ver2_patricia_trie_node_reader.h"
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h b/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h
rename to native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.h
index 838d373..dc87c7c 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h
+++ b/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.h
@@ -20,8 +20,8 @@
 #include <cstdint>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp b/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
rename to native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
index 72ad1eb..8b9b02d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
+++ b/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h"
+#include "dictionary/structure/v2/ver2_pt_node_array_reader.h"
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h b/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.h
similarity index 94%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h
rename to native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.h
index 548f36b..32fa96d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h
+++ b/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.h
@@ -20,7 +20,7 @@
 #include <cstdint>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h"
+#include "dictionary/structure/pt_common/pt_node_array_reader.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/dynamic_language_model_probability_utils.cpp b/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.cpp
similarity index 92%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/dynamic_language_model_probability_utils.cpp
rename to native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.cpp
index 025ee99..165947f 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/dynamic_language_model_probability_utils.cpp
+++ b/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h"
+#include "dictionary/structure/v4/content/dynamic_language_model_probability_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h b/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h
rename to native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h
index 644ae2c..71824c9 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h
+++ b/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h
@@ -20,7 +20,7 @@
 #include <algorithm>
 
 #include "defines.h"
-#include "suggest/core/dictionary/property/historical_info.h"
+#include "dictionary/property/historical_info.h"
 #include "utils/ngram_utils.h"
 #include "utils/time_keeper.h"
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.cpp b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.cpp
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.cpp
rename to native/jni/src/dictionary/structure/v4/content/language_model_dict_content.cpp
index 6db7ea4..c10e490 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.cpp
+++ b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.cpp
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h"
+#include "dictionary/structure/v4/content/language_model_dict_content.h"
 
 #include <algorithm>
 #include <cstring>
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h"
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
+#include "dictionary/structure/v4/content/dynamic_language_model_probability_utils.h"
+#include "dictionary/utils/probability_utils.h"
 #include "utils/ngram_utils.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.h
similarity index 94%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h
rename to native/jni/src/dictionary/structure/v4/content/language_model_dict_content.h
index 9678c35..db8c6e1 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h
+++ b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.h
@@ -21,13 +21,13 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/core/dictionary/word_attributes.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/entry_counters.h"
-#include "suggest/policyimpl/dictionary/utils/trie_map.h"
+#include "dictionary/property/word_attributes.h"
+#include "dictionary/structure/v4/content/language_model_dict_content_global_counters.h"
+#include "dictionary/structure/v4/content/probability_entry.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/utils/entry_counters.h"
+#include "dictionary/utils/trie_map.h"
 #include "utils/byte_array_view.h"
 #include "utils/int_array_view.h"
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters.cpp b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.cpp
similarity index 86%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters.cpp
rename to native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.cpp
index d6d9188..89cf0e3 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters.cpp
+++ b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.cpp
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters.h"
+#include "dictionary/structure/v4/content/language_model_dict_content_global_counters.h"
 
 #include <climits>
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters.h b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.h
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters.h
rename to native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.h
index 283c269..3f87c0e 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters.h
+++ b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.h
@@ -20,8 +20,8 @@
 #include <cstdio>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h b/native/jni/src/dictionary/structure/v4/content/probability_entry.h
similarity index 96%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h
rename to native/jni/src/dictionary/structure/v4/content/probability_entry.h
index 9c4ab18..473354b 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h
+++ b/native/jni/src/dictionary/structure/v4/content/probability_entry.h
@@ -21,10 +21,10 @@
 #include <cstdint>
 
 #include "defines.h"
-#include "suggest/core/dictionary/property/historical_info.h"
-#include "suggest/core/dictionary/property/ngram_property.h"
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.cpp b/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.cpp
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.cpp
rename to native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.cpp
index 41d9c54..e3b4194 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.cpp
+++ b/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h"
+#include "dictionary/structure/v4/content/shortcut_dict_content.h"
 
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h b/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.h
similarity index 93%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h
rename to native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.h
index 85c9ce8..27de4e7 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h
+++ b/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.h
@@ -20,9 +20,9 @@
 #include <cstdio>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/content/sparse_table_dict_content.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h b/native/jni/src/dictionary/structure/v4/content/single_dict_content.h
similarity index 88%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h
rename to native/jni/src/dictionary/structure/v4/content/single_dict_content.h
index 309c434..6faa9a2 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h
+++ b/native/jni/src/dictionary/structure/v4/content/single_dict_content.h
@@ -20,9 +20,9 @@
 #include <cstdio>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.cpp b/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.cpp
similarity index 88%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.cpp
rename to native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.cpp
index 896ce6b..685365f 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.cpp
+++ b/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h"
+#include "dictionary/structure/v4/content/sparse_table_dict_content.h"
 
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h b/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.h
similarity index 93%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h
rename to native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.h
index 0ce2da7..6245abc 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h
+++ b/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.h
@@ -20,9 +20,9 @@
 #include <cstdio>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/sparse_table.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/sparse_table.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp b/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
rename to native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
index 7bda3dc..5503151 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
+++ b/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
 
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h b/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h
rename to native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.h
index febcbe5..f45ceb5 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h
+++ b/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.h
@@ -21,8 +21,8 @@
 #include <unordered_map>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/content/single_dict_content.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h b/native/jni/src/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
similarity index 92%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
rename to native/jni/src/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
index 7902735..25ab225 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
+++ b/native/jni/src/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
@@ -18,10 +18,10 @@
 #define LATINIME_VER4_SHORTCUT_LIST_POLICY_H
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
+#include "dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
+#include "dictionary/structure/v4/content/shortcut_dict_content.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp b/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.cpp
similarity index 96%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
rename to native/jni/src/dictionary/structure/v4/ver4_dict_buffers.cpp
index 4d088dc..b0a8283 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
+++ b/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
 
 #include <cerrno>
 #include <cstring>
@@ -23,9 +23,9 @@
 #include <sys/types.h>
 #include <vector>
 
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
+#include "dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/file_utils.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h b/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.h
similarity index 88%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
rename to native/jni/src/dictionary/structure/v4/ver4_dict_buffers.h
index 5407525..c8270c9 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
+++ b/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.h
@@ -21,13 +21,13 @@
 #include <memory>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/v4/content/language_model_dict_content.h"
+#include "dictionary/structure/v4/content/shortcut_dict_content.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/mmapped_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.cpp b/native/jni/src/dictionary/structure/v4/ver4_dict_constants.cpp
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.cpp
rename to native/jni/src/dictionary/structure/v4/ver4_dict_constants.cpp
index bd89b8d..fd69078 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.cpp
+++ b/native/jni/src/dictionary/structure/v4/ver4_dict_constants.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h b/native/jni/src/dictionary/structure/v4/ver4_dict_constants.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h
rename to native/jni/src/dictionary/structure/v4/ver4_dict_constants.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
similarity index 83%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
index 4110d60..b38b03d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
@@ -14,16 +14,16 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
 
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/v4/content/language_model_dict_content.h"
+#include "dictionary/structure/v4/content/probability_entry.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
index f4df544..4e5ae3a 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
@@ -18,8 +18,8 @@
 #define LATINIME_VER4_PATRICIA_TRIE_NODE_READER_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
similarity index 94%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
index 3488f7d..d974b50 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
@@ -14,19 +14,19 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
 
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/v4/content/probability_entry.h"
+#include "dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
similarity index 92%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
index 4ecf887..5585611 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
@@ -18,10 +18,10 @@
 #define LATINIME_VER4_PATRICIA_TRIE_NODE_WRITER_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
+#include "dictionary/structure/v4/content/probability_entry.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
index a967195..1dbec55 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
@@ -14,23 +14,23 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_policy.h"
 
 #include <array>
 #include <vector>
 
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_vector.h"
-#include "suggest/core/dictionary/multi_bigram_map.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/dictionary/property/ngram_property.h"
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/core/dictionary/property/word_property.h"
-#include "suggest/core/session/ngram_context.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/property/word_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/utils/multi_bigram_map.h"
+#include "dictionary/utils/probability_utils.h"
 #include "utils/ngram_utils.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.h
similarity index 85%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.h
index 93faa83..d130a4e 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.h
@@ -20,17 +20,17 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
-#include "suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/entry_counters.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
+#include "dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_writing_helper.h"
+#include "dictionary/structure/v4/ver4_pt_node_array_reader.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/entry_counters.h"
 #include "utils/int_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
similarity index 84%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
index 254022d..ccb70cd 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
 
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/byte_array_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
similarity index 90%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
index 34af76c..6dfdf4d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
@@ -14,21 +14,21 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_writing_helper.h"
 
 #include <cstring>
 #include <queue>
 
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/v4/ver4_pt_node_array_reader.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/file_utils.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
 #include "utils/ngram_utils.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
index c56cea5..68dd1ca 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
@@ -18,9 +18,9 @@
 #define LATINIME_VER4_PATRICIA_TRIE_WRITING_HELPER_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/utils/entry_counters.h"
+#include "dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/utils/entry_counters.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp b/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
similarity index 89%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
rename to native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
index b014c52..63d0b4a 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
+++ b/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h"
+#include "dictionary/structure/v4/ver4_pt_node_array_reader.h"
 
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h b/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.h
similarity index 94%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h
rename to native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.h
index d81808e..ccb760b 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h
+++ b/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.h
@@ -18,7 +18,7 @@
 #define LATINIME_VER4_PT_NODE_ARRAY_READER_H
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h"
+#include "dictionary/structure/pt_common/pt_node_array_reader.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/core/dictionary/binary_dictionary_bigrams_iterator.h b/native/jni/src/dictionary/utils/binary_dictionary_bigrams_iterator.h
similarity index 96%
rename from native/jni/src/suggest/core/dictionary/binary_dictionary_bigrams_iterator.h
rename to native/jni/src/dictionary/utils/binary_dictionary_bigrams_iterator.h
index 178b065..8a61473 100644
--- a/native/jni/src/suggest/core/dictionary/binary_dictionary_bigrams_iterator.h
+++ b/native/jni/src/dictionary/utils/binary_dictionary_bigrams_iterator.h
@@ -18,7 +18,7 @@
 #define LATINIME_BINARY_DICTIONARY_BIGRAMS_ITERATOR_H
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
+#include "dictionary/interface/dictionary_bigrams_structure_policy.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/core/dictionary/binary_dictionary_shortcut_iterator.h b/native/jni/src/dictionary/utils/binary_dictionary_shortcut_iterator.h
similarity index 96%
rename from native/jni/src/suggest/core/dictionary/binary_dictionary_shortcut_iterator.h
rename to native/jni/src/dictionary/utils/binary_dictionary_shortcut_iterator.h
index ee1606b..a4ddd58 100644
--- a/native/jni/src/suggest/core/dictionary/binary_dictionary_shortcut_iterator.h
+++ b/native/jni/src/dictionary/utils/binary_dictionary_shortcut_iterator.h
@@ -18,7 +18,7 @@
 #define LATINIME_BINARY_DICTIONARY_SHORTCUT_ITERATOR_H
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/core/dictionary/bloom_filter.h b/native/jni/src/dictionary/utils/bloom_filter.h
similarity index 100%
rename from native/jni/src/suggest/core/dictionary/bloom_filter.h
rename to native/jni/src/dictionary/utils/bloom_filter.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp b/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.cpp
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp
rename to native/jni/src/dictionary/utils/buffer_with_extendable_buffer.cpp
index da2c30c..2175696 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp
+++ b/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h b/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.h
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h
rename to native/jni/src/dictionary/utils/buffer_with_extendable_buffer.h
index fad83aa..0a141d4 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h
+++ b/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.h
@@ -22,7 +22,7 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/byte_array_utils.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.cpp b/native/jni/src/dictionary/utils/byte_array_utils.cpp
similarity index 92%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.cpp
rename to native/jni/src/dictionary/utils/byte_array_utils.cpp
index 1833e88..d38f082 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.cpp
+++ b/native/jni/src/dictionary/utils/byte_array_utils.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/byte_array_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.h b/native/jni/src/dictionary/utils/byte_array_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.h
rename to native/jni/src/dictionary/utils/byte_array_utils.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp b/native/jni/src/dictionary/utils/dict_file_writing_utils.cpp
similarity index 89%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp
rename to native/jni/src/dictionary/utils/dict_file_writing_utils.cpp
index edcb436..033a758 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp
+++ b/native/jni/src/dictionary/utils/dict_file_writing_utils.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
 
 #include <cstdio>
 #include <errno.h>
@@ -22,14 +22,14 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/entry_counters.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/entry_counters.h"
+#include "dictionary/utils/file_utils.h"
+#include "dictionary/utils/format_utils.h"
 #include "utils/time_keeper.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h b/native/jni/src/dictionary/utils/dict_file_writing_utils.h
similarity index 94%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h
rename to native/jni/src/dictionary/utils/dict_file_writing_utils.h
index 4843b3b..102a89d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h
+++ b/native/jni/src/dictionary/utils/dict_file_writing_utils.h
@@ -20,8 +20,8 @@
 #include <cstdio>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
+#include "dictionary/header/header_read_write_utils.h"
+#include "dictionary/utils/format_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/entry_counters.h b/native/jni/src/dictionary/utils/entry_counters.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/entry_counters.h
rename to native/jni/src/dictionary/utils/entry_counters.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp b/native/jni/src/dictionary/utils/file_utils.cpp
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp
rename to native/jni/src/dictionary/utils/file_utils.cpp
index fb80f38..bb392fb 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp
+++ b/native/jni/src/dictionary/utils/file_utils.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
+#include "dictionary/utils/file_utils.h"
 
 #include <cstdio>
 #include <cstring>
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.h b/native/jni/src/dictionary/utils/file_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.h
rename to native/jni/src/dictionary/utils/file_utils.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.cpp b/native/jni/src/dictionary/utils/forgetting_curve_utils.cpp
similarity index 97%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.cpp
rename to native/jni/src/dictionary/utils/forgetting_curve_utils.cpp
index f05c614..d79ed91 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.cpp
+++ b/native/jni/src/dictionary/utils/forgetting_curve_utils.cpp
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
 
 #include <algorithm>
 #include <cmath>
 #include <stdlib.h>
 
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/utils/probability_utils.h"
 #include "utils/time_keeper.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h b/native/jni/src/dictionary/utils/forgetting_curve_utils.h
similarity index 96%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h
rename to native/jni/src/dictionary/utils/forgetting_curve_utils.h
index 06dcae8..ddaac7e 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h
+++ b/native/jni/src/dictionary/utils/forgetting_curve_utils.h
@@ -20,8 +20,8 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/core/dictionary/property/historical_info.h"
-#include "suggest/policyimpl/dictionary/utils/entry_counters.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/utils/entry_counters.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp b/native/jni/src/dictionary/utils/format_utils.cpp
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp
rename to native/jni/src/dictionary/utils/format_utils.cpp
index e225c23..cef3b09 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp
+++ b/native/jni/src/dictionary/utils/format_utils.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
+#include "dictionary/utils/format_utils.h"
 
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/byte_array_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.h b/native/jni/src/dictionary/utils/format_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.h
rename to native/jni/src/dictionary/utils/format_utils.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.cpp b/native/jni/src/dictionary/utils/mmapped_buffer.cpp
similarity index 96%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.cpp
rename to native/jni/src/dictionary/utils/mmapped_buffer.cpp
index 4a126ff..c5259de 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.cpp
+++ b/native/jni/src/dictionary/utils/mmapped_buffer.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
+#include "dictionary/utils/mmapped_buffer.h"
 
 #include <cerrno>
 #include <climits>
@@ -23,7 +23,7 @@
 #include <sys/mman.h>
 #include <unistd.h>
 
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
+#include "dictionary/utils/file_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.h b/native/jni/src/dictionary/utils/mmapped_buffer.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.h
rename to native/jni/src/dictionary/utils/mmapped_buffer.h
diff --git a/native/jni/src/suggest/core/dictionary/multi_bigram_map.cpp b/native/jni/src/dictionary/utils/multi_bigram_map.cpp
similarity index 98%
rename from native/jni/src/suggest/core/dictionary/multi_bigram_map.cpp
rename to native/jni/src/dictionary/utils/multi_bigram_map.cpp
index 761f51e..e730fff 100644
--- a/native/jni/src/suggest/core/dictionary/multi_bigram_map.cpp
+++ b/native/jni/src/dictionary/utils/multi_bigram_map.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/core/dictionary/multi_bigram_map.h"
+#include "dictionary/utils/multi_bigram_map.h"
 
 #include <cstddef>
 #include <unordered_map>
diff --git a/native/jni/src/suggest/core/dictionary/multi_bigram_map.h b/native/jni/src/dictionary/utils/multi_bigram_map.h
similarity index 92%
rename from native/jni/src/suggest/core/dictionary/multi_bigram_map.h
rename to native/jni/src/dictionary/utils/multi_bigram_map.h
index d2eb5cc..6f23d98 100644
--- a/native/jni/src/suggest/core/dictionary/multi_bigram_map.h
+++ b/native/jni/src/dictionary/utils/multi_bigram_map.h
@@ -21,10 +21,10 @@
 #include <unordered_map>
 
 #include "defines.h"
-#include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h"
-#include "suggest/core/dictionary/bloom_filter.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/utils/binary_dictionary_bigrams_iterator.h"
+#include "dictionary/utils/bloom_filter.h"
 #include "utils/int_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/probability_utils.cpp b/native/jni/src/dictionary/utils/probability_utils.cpp
similarity index 91%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/probability_utils.cpp
rename to native/jni/src/dictionary/utils/probability_utils.cpp
index e8fa069..426a0e7 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/probability_utils.cpp
+++ b/native/jni/src/dictionary/utils/probability_utils.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
+#include "dictionary/utils/probability_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/probability_utils.h b/native/jni/src/dictionary/utils/probability_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/probability_utils.h
rename to native/jni/src/dictionary/utils/probability_utils.h
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp b/native/jni/src/dictionary/utils/sparse_table.cpp
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp
rename to native/jni/src/dictionary/utils/sparse_table.cpp
index d336306..029329f 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp
+++ b/native/jni/src/dictionary/utils/sparse_table.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/sparse_table.h"
+#include "dictionary/utils/sparse_table.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h b/native/jni/src/dictionary/utils/sparse_table.h
similarity index 95%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h
rename to native/jni/src/dictionary/utils/sparse_table.h
index e1a96c6..bd1190e 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h
+++ b/native/jni/src/dictionary/utils/sparse_table.h
@@ -20,7 +20,7 @@
 #include <cstdint>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp b/native/jni/src/dictionary/utils/trie_map.cpp
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
rename to native/jni/src/dictionary/utils/trie_map.cpp
index b7ef2b9..0bef8c7 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
+++ b/native/jni/src/dictionary/utils/trie_map.cpp
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/trie_map.h"
+#include "dictionary/utils/trie_map.h"
 
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h b/native/jni/src/dictionary/utils/trie_map.h
similarity index 99%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h
rename to native/jni/src/dictionary/utils/trie_map.h
index 0076588..5fc6c26 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h
+++ b/native/jni/src/dictionary/utils/trie_map.h
@@ -23,7 +23,7 @@
 #include <vector>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 #include "utils/byte_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
index ea43892..a20252c 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
+++ b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
@@ -16,9 +16,9 @@
 
 #include "suggest/core/dicnode/dic_node_utils.h"
 
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_vector.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/core/dictionary/dictionary.cpp b/native/jni/src/suggest/core/dictionary/dictionary.cpp
index 6a5df9d..5c9a139 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary.cpp
+++ b/native/jni/src/suggest/core/dictionary/dictionary.cpp
@@ -19,11 +19,11 @@
 #include "suggest/core/dictionary/dictionary.h"
 
 #include "defines.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/property/ngram_context.h"
 #include "suggest/core/dictionary/dictionary_utils.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
 #include "suggest/core/result/suggestion_results.h"
 #include "suggest/core/session/dic_traverse_session.h"
-#include "suggest/core/session/ngram_context.h"
 #include "suggest/core/suggest.h"
 #include "suggest/core/suggest_options.h"
 #include "suggest/policyimpl/gesture/gesture_suggest_policy_factory.h"
diff --git a/native/jni/src/suggest/core/dictionary/dictionary.h b/native/jni/src/suggest/core/dictionary/dictionary.h
index b177437..9e224eb 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary.h
+++ b/native/jni/src/suggest/core/dictionary/dictionary.h
@@ -21,11 +21,11 @@
 
 #include "defines.h"
 #include "jni.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/dictionary/property/historical_info.h"
-#include "suggest/core/dictionary/property/word_property.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/property/word_property.h"
 #include "suggest/core/suggest_interface.h"
 #include "utils/int_array_view.h"
 
diff --git a/native/jni/src/suggest/core/dictionary/dictionary_utils.cpp b/native/jni/src/suggest/core/dictionary/dictionary_utils.cpp
index 9573c37..7de5500 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary_utils.cpp
+++ b/native/jni/src/suggest/core/dictionary/dictionary_utils.cpp
@@ -16,13 +16,13 @@
 
 #include "suggest/core/dictionary/dictionary_utils.h"
 
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/property/ngram_context.h"
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_priority_queue.h"
 #include "suggest/core/dicnode/dic_node_vector.h"
 #include "suggest/core/dictionary/dictionary.h"
 #include "suggest/core/dictionary/digraph_utils.h"
-#include "suggest/core/session/ngram_context.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
 #include "utils/int_array_view.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/core/dictionary/digraph_utils.cpp b/native/jni/src/suggest/core/dictionary/digraph_utils.cpp
index bb2ce50..4d68f62 100644
--- a/native/jni/src/suggest/core/dictionary/digraph_utils.cpp
+++ b/native/jni/src/suggest/core/dictionary/digraph_utils.cpp
@@ -19,7 +19,7 @@
 #include <cstdlib>
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
 #include "utils/char_utils.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/core/result/suggestions_output_utils.cpp b/native/jni/src/suggest/core/result/suggestions_output_utils.cpp
index 1aff729..7c37241 100644
--- a/native/jni/src/suggest/core/result/suggestions_output_utils.cpp
+++ b/native/jni/src/suggest/core/result/suggestions_output_utils.cpp
@@ -19,9 +19,9 @@
 #include <algorithm>
 #include <vector>
 
+#include "dictionary/utils/binary_dictionary_shortcut_iterator.h"
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_utils.h"
-#include "suggest/core/dictionary/binary_dictionary_shortcut_iterator.h"
 #include "suggest/core/dictionary/error_type_utils.h"
 #include "suggest/core/policy/scoring.h"
 #include "suggest/core/result/suggestion_results.h"
diff --git a/native/jni/src/suggest/core/result/suggestions_output_utils.h b/native/jni/src/suggest/core/result/suggestions_output_utils.h
index eca1f78..bcb75a4 100644
--- a/native/jni/src/suggest/core/result/suggestions_output_utils.h
+++ b/native/jni/src/suggest/core/result/suggestions_output_utils.h
@@ -18,7 +18,7 @@
 #define LATINIME_SUGGESTIONS_OUTPUT_UTILS
 
 #include "defines.h"
-#include "suggest/core/dictionary/word_attributes.h"
+#include "dictionary/property/word_attributes.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/core/session/dic_traverse_session.cpp b/native/jni/src/suggest/core/session/dic_traverse_session.cpp
index 52dc2f8..d7dd5a0 100644
--- a/native/jni/src/suggest/core/session/dic_traverse_session.cpp
+++ b/native/jni/src/suggest/core/session/dic_traverse_session.cpp
@@ -17,10 +17,10 @@
 #include "suggest/core/session/dic_traverse_session.h"
 
 #include "defines.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/property/ngram_context.h"
 #include "suggest/core/dictionary/dictionary.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/core/session/ngram_context.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/core/session/dic_traverse_session.h b/native/jni/src/suggest/core/session/dic_traverse_session.h
index bc53167..f5fcfdd 100644
--- a/native/jni/src/suggest/core/session/dic_traverse_session.h
+++ b/native/jni/src/suggest/core/session/dic_traverse_session.h
@@ -20,9 +20,9 @@
 #include <vector>
 
 #include "defines.h"
+#include "dictionary/utils/multi_bigram_map.h"
 #include "jni.h"
 #include "suggest/core/dicnode/dic_nodes_cache.h"
-#include "suggest/core/dictionary/multi_bigram_map.h"
 #include "suggest/core/layout/proximity_info_state.h"
 #include "utils/int_array_view.h"
 
diff --git a/native/jni/src/suggest/core/suggest.cpp b/native/jni/src/suggest/core/suggest.cpp
index e5e9b46..52fa5a5 100644
--- a/native/jni/src/suggest/core/suggest.cpp
+++ b/native/jni/src/suggest/core/suggest.cpp
@@ -16,14 +16,14 @@
 
 #include "suggest/core/suggest.h"
 
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/property/word_attributes.h"
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_priority_queue.h"
 #include "suggest/core/dicnode/dic_node_vector.h"
 #include "suggest/core/dictionary/dictionary.h"
 #include "suggest/core/dictionary/digraph_utils.h"
-#include "suggest/core/dictionary/word_attributes.h"
 #include "suggest/core/layout/proximity_info.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
 #include "suggest/core/policy/traversal.h"
 #include "suggest/core/policy/weighting.h"
 #include "suggest/core/result/suggestions_output_utils.h"
diff --git a/native/jni/src/utils/jni_data_utils.h b/native/jni/src/utils/jni_data_utils.h
index 0129585..8024e34 100644
--- a/native/jni/src/utils/jni_data_utils.h
+++ b/native/jni/src/utils/jni_data_utils.h
@@ -20,11 +20,11 @@
 #include <vector>
 
 #include "defines.h"
+#include "dictionary/header/header_read_write_utils.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/property/word_property.h"
 #include "jni.h"
-#include "suggest/core/dictionary/property/word_property.h"
-#include "suggest/core/session/ngram_context.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
 #include "utils/char_utils.h"
 
 namespace latinime {
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/header/header_read_write_utils_test.cpp b/native/jni/tests/dictionary/header/header_read_write_utils_test.cpp
similarity index 95%
rename from native/jni/tests/suggest/policyimpl/dictionary/header/header_read_write_utils_test.cpp
rename to native/jni/tests/dictionary/header/header_read_write_utils_test.cpp
index da6a2af..eab5d65 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/header/header_read_write_utils_test.cpp
+++ b/native/jni/tests/dictionary/header/header_read_write_utils_test.cpp
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
+#include "dictionary/header/header_read_write_utils.h"
 
 #include <gtest/gtest.h>
 
 #include <cstring>
 #include <vector>
 
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
 
 namespace latinime {
 namespace {
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp
similarity index 91%
rename from native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp
rename to native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp
index 44b5a8a..2e3047e 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp
+++ b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_global_counters.h"
+#include "dictionary/structure/v4/content/language_model_dict_content_global_counters.h"
 
 #include <gtest/gtest.h>
 
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
 
 namespace latinime {
 namespace {
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_test.cpp b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp
similarity index 98%
rename from native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_test.cpp
rename to native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp
index 313a9af..ca8626e 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_test.cpp
+++ b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h"
+#include "dictionary/structure/v4/content/language_model_dict_content.h"
 
 #include <gtest/gtest.h>
 
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/probability_entry_test.cpp b/native/jni/tests/dictionary/structure/v4/content/probability_entry_test.cpp
similarity index 95%
rename from native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/probability_entry_test.cpp
rename to native/jni/tests/dictionary/structure/v4/content/probability_entry_test.cpp
index eb78034..ba81671 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/probability_entry_test.cpp
+++ b/native/jni/tests/dictionary/structure/v4/content/probability_entry_test.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
+#include "dictionary/structure/v4/content/probability_entry.h"
 
 #include <gtest/gtest.h>
 
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp b/native/jni/tests/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp
similarity index 94%
rename from native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp
rename to native/jni/tests/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp
index 23b9c55..4f23889 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp
+++ b/native/jni/tests/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
 
 #include <gtest/gtest.h>
 
 #include <vector>
 
 #include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
 
 namespace latinime {
 namespace {
diff --git a/native/jni/tests/suggest/core/dictionary/bloom_filter_test.cpp b/native/jni/tests/dictionary/utils/bloom_filter_test.cpp
similarity index 97%
rename from native/jni/tests/suggest/core/dictionary/bloom_filter_test.cpp
rename to native/jni/tests/dictionary/utils/bloom_filter_test.cpp
index b620217..bcc8843 100644
--- a/native/jni/tests/suggest/core/dictionary/bloom_filter_test.cpp
+++ b/native/jni/tests/dictionary/utils/bloom_filter_test.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/core/dictionary/bloom_filter.h"
+#include "dictionary/utils/bloom_filter.h"
 
 #include <gtest/gtest.h>
 
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer_test.cpp b/native/jni/tests/dictionary/utils/buffer_with_extendable_buffer_test.cpp
similarity index 97%
rename from native/jni/tests/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer_test.cpp
rename to native/jni/tests/dictionary/utils/buffer_with_extendable_buffer_test.cpp
index fa6c6d7..2587891 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer_test.cpp
+++ b/native/jni/tests/dictionary/utils/buffer_with_extendable_buffer_test.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 #include <gtest/gtest.h>
 
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/utils/byte_array_utils_test.cpp b/native/jni/tests/dictionary/utils/byte_array_utils_test.cpp
similarity index 98%
rename from native/jni/tests/suggest/policyimpl/dictionary/utils/byte_array_utils_test.cpp
rename to native/jni/tests/dictionary/utils/byte_array_utils_test.cpp
index c201e0d..0725753 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/utils/byte_array_utils_test.cpp
+++ b/native/jni/tests/dictionary/utils/byte_array_utils_test.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/byte_array_utils.h"
 
 #include <gtest/gtest.h>
 
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/utils/format_utils_test.cpp b/native/jni/tests/dictionary/utils/format_utils_test.cpp
similarity index 97%
rename from native/jni/tests/suggest/policyimpl/dictionary/utils/format_utils_test.cpp
rename to native/jni/tests/dictionary/utils/format_utils_test.cpp
index 4942005..3561bda 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/utils/format_utils_test.cpp
+++ b/native/jni/tests/dictionary/utils/format_utils_test.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
+#include "dictionary/utils/format_utils.h"
 
 #include <gtest/gtest.h>
 
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/utils/probability_utils_test.cpp b/native/jni/tests/dictionary/utils/probability_utils_test.cpp
similarity index 93%
rename from native/jni/tests/suggest/policyimpl/dictionary/utils/probability_utils_test.cpp
rename to native/jni/tests/dictionary/utils/probability_utils_test.cpp
index be1f278..4020ea4 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/utils/probability_utils_test.cpp
+++ b/native/jni/tests/dictionary/utils/probability_utils_test.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
+#include "dictionary/utils/probability_utils.h"
 
 #include <gtest/gtest.h>
 
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/utils/sparse_table_test.cpp b/native/jni/tests/dictionary/utils/sparse_table_test.cpp
similarity index 91%
rename from native/jni/tests/suggest/policyimpl/dictionary/utils/sparse_table_test.cpp
rename to native/jni/tests/dictionary/utils/sparse_table_test.cpp
index 0b57156..237c963 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/utils/sparse_table_test.cpp
+++ b/native/jni/tests/dictionary/utils/sparse_table_test.cpp
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/sparse_table.h"
+#include "dictionary/utils/sparse_table.h"
 
 #include <gtest/gtest.h>
 
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
 namespace {
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/utils/trie_map_test.cpp b/native/jni/tests/dictionary/utils/trie_map_test.cpp
similarity index 99%
rename from native/jni/tests/suggest/policyimpl/dictionary/utils/trie_map_test.cpp
rename to native/jni/tests/dictionary/utils/trie_map_test.cpp
index 56b5aa9..745d398 100644
--- a/native/jni/tests/suggest/policyimpl/dictionary/utils/trie_map_test.cpp
+++ b/native/jni/tests/dictionary/utils/trie_map_test.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/utils/trie_map.h"
+#include "dictionary/utils/trie_map.h"
 
 #include <gtest/gtest.h>