diff --git a/native/jni/Android.mk b/native/jni/Android.mk
index a6bb48752fa006a3edb1f43a95b54a0dbc7f9ecb..0b73fc976bcb08131f5f720ee75a800622babb96 100644
--- a/native/jni/Android.mk
+++ b/native/jni/Android.mk
@@ -28,6 +28,7 @@ LATIN_IME_SRC_DIR := src
 LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)
 LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)/gesture
 LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)/gesture/impl
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)/gesture/impl/header
 
 LOCAL_CFLAGS += -Werror -Wall
 
@@ -50,7 +51,11 @@ LATIN_IME_CORE_SRC_FILES := \
     proximity_info.cpp \
     proximity_info_state.cpp \
     unigram_dictionary.cpp \
-    gesture/build_check.cpp
+    gesture/build_check.cpp \
+    gesture/impl/gesture_decoder_impl.cpp \
+    gesture/impl/incremental_decoder_impl.cpp \
+    gesture/impl/token_beam_impl.cpp \
+    gesture/impl/token_impl.cpp
 
 LOCAL_SRC_FILES := \
     $(LATIN_IME_JNI_SRC_FILES) \
diff --git a/native/jni/src/gesture/impl/gesture_decoder_impl.cpp b/native/jni/src/gesture/impl/gesture_decoder_impl.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..59937a4d8ca5142db0e09d82a2c2261875a44889
--- /dev/null
+++ b/native/jni/src/gesture/impl/gesture_decoder_impl.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "gesture_decoder_impl.h"
+
+namespace latinime {
+};
+// namespace latinime
diff --git a/native/jni/src/gesture/impl/header/nothing.h b/native/jni/src/gesture/impl/header/nothing.h
new file mode 100644
index 0000000000000000000000000000000000000000..c9d8645c9349e411f012e155e8d1eb2b0ec8c7ef
--- /dev/null
+++ b/native/jni/src/gesture/impl/header/nothing.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_NOTHING_H
+#define LATINIME_NOTHING_H
+
+namespace latinime {
+} // namespace latinime
+
+#endif // LATINIME_NOTHING_H
diff --git a/native/jni/src/gesture/impl/incremental_decoder_impl.cpp b/native/jni/src/gesture/impl/incremental_decoder_impl.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b7e8b3bd1fe4bc7119bce47c995fade92483df7f
--- /dev/null
+++ b/native/jni/src/gesture/impl/incremental_decoder_impl.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "incremental_decoder_impl.h"
+
+namespace latinime {
+};
+// namespace latinime
diff --git a/native/jni/src/gesture/impl/token_beam_impl.cpp b/native/jni/src/gesture/impl/token_beam_impl.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b2b73c25c81e725a292b2682df61321f5751d6c1
--- /dev/null
+++ b/native/jni/src/gesture/impl/token_beam_impl.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "token_beam_impl.h"
+
+namespace latinime {
+};
+// namespace latinime
diff --git a/native/jni/src/gesture/impl/token_beam_impl.h b/native/jni/src/gesture/impl/token_beam_impl.h
new file mode 100644
index 0000000000000000000000000000000000000000..33250569750a5801216b46b9594a35a4924e3735
--- /dev/null
+++ b/native/jni/src/gesture/impl/token_beam_impl.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_TOKEN_BEAM_IMPL_H
+#define LATINIME_TOKEN_BEAM_IMPL_H
+
+#include "defines.h"
+
+namespace latinime {
+
+class TokenBeamImpl {
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(TokenBeamImpl);
+};
+} // namespace latinime
+
+#endif // LATINIME_TOKEN_BEAM_IMPL_H
diff --git a/native/jni/src/gesture/impl/token_impl.cpp b/native/jni/src/gesture/impl/token_impl.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c7efeb18896dec9eb2699c03ccaaa59d6ab70d94
--- /dev/null
+++ b/native/jni/src/gesture/impl/token_impl.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "token_impl.h"
+
+namespace latinime {
+};
+// namespace latinime
diff --git a/native/jni/src/gesture/impl/token_impl.h b/native/jni/src/gesture/impl/token_impl.h
new file mode 100644
index 0000000000000000000000000000000000000000..0ed7d002077037709bb7ae8dd7cd5dfd2ee57944
--- /dev/null
+++ b/native/jni/src/gesture/impl/token_impl.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_TOKEN_IMPL_H
+#define LATINIME_TOKEN_IMPL_H
+
+#include "defines.h"
+
+namespace latinime {
+
+struct TokenImpl {
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(TokenImpl);
+};
+} // namespace latinime
+
+#endif // LATINIME_TOKEN_IMPL_H