diff --git a/native/src/bigram_dictionary.h b/native/src/bigram_dictionary.h
index d658b93..c07458a 100644
--- a/native/src/bigram_dictionary.h
+++ b/native/src/bigram_dictionary.h
@@ -50,6 +50,7 @@
     int *mInputCodes;
     int mInputLength;
 };
-// ----------------------------------------------------------------------------
-}; // namespace latinime
+
+} // namespace latinime
+
 #endif // LATINIME_BIGRAM_DICTIONARY_H
diff --git a/native/src/char_utils.h b/native/src/char_utils.h
index 921ecb4..a69a35e 100644
--- a/native/src/char_utils.h
+++ b/native/src/char_utils.h
@@ -21,6 +21,6 @@
 
 unsigned short latin_tolower(unsigned short c);
 
-}; // namespace latinime
+} // namespace latinime
 
 #endif // LATINIME_CHAR_UTILS_H
diff --git a/native/src/debug.h b/native/src/debug.h
index ae629b2..38b2f10 100644
--- a/native/src/debug.h
+++ b/native/src/debug.h
@@ -28,6 +28,7 @@
     output[i] = 0;
     return output;
 }
+
 static inline unsigned char* convertToUnibyteStringAndReplaceLastChar(unsigned short* input,
         unsigned char* output, const unsigned int length, unsigned char c) {
     int i = 0;
@@ -37,6 +38,7 @@
     output[i] = 0;
     return output;
 }
+
 static inline void LOGI_S16(unsigned short* string, const unsigned int length) {
     unsigned char tmp_buffer[length];
     convertToUnibyteString(string, tmp_buffer, length);
@@ -46,6 +48,7 @@
     // TODO : refactor this in a blocking log or something.
     // usleep(10);
 }
+
 static inline void LOGI_S16_PLUS(unsigned short* string, const unsigned int length,
         unsigned char c) {
     unsigned char tmp_buffer[length+1];
diff --git a/native/src/dictionary.h b/native/src/dictionary.h
index 1b41f69..3dc577a 100644
--- a/native/src/dictionary.h
+++ b/native/src/dictionary.h
@@ -81,7 +81,6 @@
     BigramDictionary *mBigramDictionary;
 };
 
-// ----------------------------------------------------------------------------
 // public static utility methods
 // static inline methods should be defined in the header file
 inline unsigned short Dictionary::getChar(const unsigned char *dict, int *pos) {
@@ -134,7 +133,6 @@
     return freq;
 }
 
-
 inline int Dictionary::wideStrLen(unsigned short *str) {
     if (!str) return 0;
     unsigned short *end = str;
@@ -158,5 +156,6 @@
     return position;
 }
 
-}; // namespace latinime
+} // namespace latinime
+
 #endif // LATINIME_DICTIONARY_H
diff --git a/native/src/proximity_info.cpp b/native/src/proximity_info.cpp
index 102123c..209c31e 100644
--- a/native/src/proximity_info.cpp
+++ b/native/src/proximity_info.cpp
@@ -22,6 +22,7 @@
 #include "proximity_info.h"
 
 namespace latinime {
+
 ProximityInfo::ProximityInfo(const int maxProximityCharsSize, const int keyboardWidth,
         const int keyboardHeight, const int gridWidth, const int gridHeight,
         const uint32_t *proximityCharsArray)
@@ -61,4 +62,5 @@
     }
     return false;
 }
-}  // namespace latinime
+
+} // namespace latinime
diff --git a/native/src/proximity_info.h b/native/src/proximity_info.h
index c2062e8..327cd09 100644
--- a/native/src/proximity_info.h
+++ b/native/src/proximity_info.h
@@ -41,5 +41,7 @@
     const int CELL_HEIGHT;
     uint32_t *mProximityCharsArray;
 };
-}; // namespace latinime
+
+} // namespace latinime
+
 #endif // LATINIME_PROXIMITY_INFO_H
diff --git a/native/src/unigram_dictionary.h b/native/src/unigram_dictionary.h
index 3593dd6..154ac9b 100644
--- a/native/src/unigram_dictionary.h
+++ b/native/src/unigram_dictionary.h
@@ -147,8 +147,6 @@
     int mNextLettersFrequency[NEXT_LETTERS_SIZE];
 };
 
-// ----------------------------------------------------------------------------
-
-}; // namespace latinime
+} // namespace latinime
 
 #endif // LATINIME_UNIGRAM_DICTIONARY_H
