diff --git a/native/jni/Android.mk b/native/jni/Android.mk
index f56223f742c6ac5f53a1c6ff2ae0a4fae4533b51..1518dad179ac1d434a3973c2ab253a95907f0eb2 100644
--- a/native/jni/Android.mk
+++ b/native/jni/Android.mk
@@ -46,7 +46,6 @@ LATIN_IME_JNI_SRC_FILES := \
     jni_common.cpp
 
 LATIN_IME_CORE_SRC_FILES := \
-    bigram_dictionary.cpp \
     correction.cpp \
     dic_traverse_wrapper.cpp \
     unigram_dictionary.cpp \
@@ -57,6 +56,7 @@ LATIN_IME_CORE_SRC_FILES := \
         dic_node_utils.cpp \
         dic_nodes_cache.cpp) \
     $(addprefix suggest/core/dictionary/, \
+        bigram_dictionary.cpp \
         binary_dictionary_format.cpp \
         byte_array_utils.cpp \
         dictionary.cpp \
diff --git a/native/jni/src/bigram_dictionary.cpp b/native/jni/src/suggest/core/dictionary/bigram_dictionary.cpp
similarity index 100%
rename from native/jni/src/bigram_dictionary.cpp
rename to native/jni/src/suggest/core/dictionary/bigram_dictionary.cpp
diff --git a/native/jni/src/bigram_dictionary.h b/native/jni/src/suggest/core/dictionary/bigram_dictionary.h
similarity index 100%
rename from native/jni/src/bigram_dictionary.h
rename to native/jni/src/suggest/core/dictionary/bigram_dictionary.h
diff --git a/native/jni/src/suggest/core/dictionary/dictionary.cpp b/native/jni/src/suggest/core/dictionary/dictionary.cpp
index dcb83cb5138ac7b0237982935a5eb751512eb846..6fd755dfe6e55ac493cae9069e7d5b4d27aef0a0 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary.cpp
+++ b/native/jni/src/suggest/core/dictionary/dictionary.cpp
@@ -21,9 +21,9 @@
 #include <map> // TODO: remove
 #include <stdint.h>
 
-#include "bigram_dictionary.h"
 #include "defines.h"
 #include "dic_traverse_wrapper.h"
+#include "suggest/core/dictionary/bigram_dictionary.h"
 #include "suggest/core/dictionary/binary_format.h"
 #include "suggest/core/suggest.h"
 #include "suggest/core/suggest_options.h"