diff --git a/native/jni/src/defines.h b/native/jni/src/defines.h
index c89a870..4d5a2b2 100644
--- a/native/jni/src/defines.h
+++ b/native/jni/src/defines.h
@@ -316,7 +316,7 @@
 #define TWO_WORDS_CAPITALIZED_DEMOTION_RATE 50
 #define TWO_WORDS_CORRECTION_DEMOTION_BASE 80
 #define TWO_WORDS_PLUS_OTHER_ERROR_CORRECTION_DEMOTION_DIVIDER 1
-#define ZERO_DISTANCE_PROMOTION_RATE 110
+#define ZERO_DISTANCE_PROMOTION_RATE 110.0f
 #define NEUTRAL_SCORE_SQUARED_RADIUS 8.0f
 #define HALF_SCORE_SQUARED_RADIUS 32.0f
 #define MAX_FREQ 255
diff --git a/native/jni/src/suggest_utils.h b/native/jni/src/suggest_utils.h
index a3b3c12..42cc5de 100644
--- a/native/jni/src/suggest_utils.h
+++ b/native/jni/src/suggest_utils.h
@@ -18,11 +18,12 @@
 #define LATINIME_SUGGEST_UTILS_H
 
 #include "defines.h"
+#include "proximity_info_state.h"
 
 namespace latinime {
 class SuggestUtils {
  public:
-    static float getDistanceScalingFactor(float normalizedSquaredDistance) {
+    static float getDistanceScalingFactor(const float normalizedSquaredDistance) {
         if (normalizedSquaredDistance < 0.0f) {
             return -1.0f;
         }
@@ -33,8 +34,8 @@
         static const float MIN = 0.3f;
         static const float R1 = NEUTRAL_SCORE_SQUARED_RADIUS;
         static const float R2 = HALF_SCORE_SQUARED_RADIUS;
-        const float x = static_cast<float>(normalizedSquaredDistance)
-                / ProximityInfoState::NORMALIZED_SQUARED_DISTANCE_SCALING_FACTOR;
+        const float x = normalizedSquaredDistance / static_cast<float>(
+                ProximityInfoState::NORMALIZED_SQUARED_DISTANCE_SCALING_FACTOR);
         const float factor = max((x < R1)
                 ? (A * (R1 - x) + B * x) / R1
                 : (B * (R2 - x) + C * (x - R1)) / (R2 - R1), MIN);
@@ -48,6 +49,9 @@
         // 0   R1 R2             .
         return factor;
     }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(SuggestUtils);
 };
 } // namespace latinime
 #endif // LATINIME_SUGGEST_UTILS_H
