diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index a7985c37d0be52b09e5d8d0c6f4cd26f258ef569..bd502a030fc0c23ccee1631898cc1415991bd891 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -926,8 +926,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
             final List<SuggestedWords.SuggestedWordInfo> applicationSuggestedWords =
                     SuggestedWords.Builder.getFromApplicationSpecifiedCompletions(
                             applicationSpecifiedCompletions);
-            SuggestedWords.Builder builder = new SuggestedWords.Builder()
-                    .setWords(applicationSuggestedWords)
+            SuggestedWords.Builder builder = new SuggestedWords.Builder(applicationSuggestedWords)
                     .setTypedWordValid(false)
                     .setHasMinimalSuggestion(false);
             // When in fullscreen mode, show completions generated by the application
@@ -1786,8 +1785,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
             final ArrayList<SuggestedWords.SuggestedWordInfo> typedWordAndPreviousSuggestions =
                     SuggestedWords.Builder.getTypedWordAndPreviousSuggestions(
                             typedWord, previousSuggestions);
-            final SuggestedWords.Builder obsoleteSuggestionsBuilder = new SuggestedWords.Builder()
-                    .setWords(typedWordAndPreviousSuggestions)
+            final SuggestedWords.Builder obsoleteSuggestionsBuilder =
+                    new SuggestedWords.Builder(typedWordAndPreviousSuggestions)
                     .setTypedWordValid(false)
                     .setHasMinimalSuggestion(false);
 
diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java
index 9abea66b2a5c5be4bb2b30df02776022582848da..591f9f5a78086ecc94e5033cb3149dba80f6a7b4 100644
--- a/java/src/com/android/inputmethod/latin/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/SettingsValues.java
@@ -183,8 +183,7 @@ public class SettingsValues {
                         KeySpecParser.getLabel(puncSpec)));
             }
         }
-        final SuggestedWords.Builder builder = new SuggestedWords.Builder()
-                .setWords(puncList)
+        final SuggestedWords.Builder builder = new SuggestedWords.Builder(puncList)
                 .setIsPunctuationSuggestions();
         return builder.build();
     }
@@ -203,8 +202,7 @@ public class SettingsValues {
                 }
             }
         }
-        final SuggestedWords.Builder builder = new SuggestedWords.Builder()
-                .setWords(puncOutputTextList)
+        final SuggestedWords.Builder builder = new SuggestedWords.Builder(puncOutputTextList)
                 .setIsPunctuationSuggestions();
         return builder.build();
     }
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 3015d75ce3375836239c08dd0b788b399e8bb17e..40e9ef8e72ed17db7ffc3e7b493a4e3e6fc2f1bc 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -269,8 +269,8 @@ public class Suggest implements Dictionary.WordCallback {
 
         StringUtils.removeDupes(mSuggestions);
 
-        return new SuggestedWords.Builder()
-                .setWords(SuggestedWords.Builder.getFromCharSequenceList(mSuggestions))
+        return new SuggestedWords.Builder(
+                SuggestedWords.Builder.getFromCharSequenceList(mSuggestions))
                 .setAllowsToBeAutoCorrected(false);
     }
 
@@ -423,11 +423,11 @@ public class Suggest implements Dictionary.WordCallback {
                 scoreInfoList.add(new SuggestedWords.SuggestedWordInfo(mSuggestions.get(i),
                         "--", false));
             }
-            builder = new SuggestedWords.Builder().setWords(scoreInfoList)
+            builder = new SuggestedWords.Builder(scoreInfoList)
                     .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected);
         } else {
-            builder = new SuggestedWords.Builder()
-                    .setWords(SuggestedWords.Builder.getFromCharSequenceList(mSuggestions))
+            builder = new SuggestedWords.Builder(
+                    SuggestedWords.Builder.getFromCharSequenceList(mSuggestions))
                     .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected);
         }
 
diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java
index a9699af528654c37b6e4549525ab54bad55a4de2..676563e1d2c10be4307d554bdc655e46e6356199 100644
--- a/java/src/com/android/inputmethod/latin/SuggestedWords.java
+++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java
@@ -16,7 +16,6 @@
 
 package com.android.inputmethod.latin;
 
-import android.text.TextUtils;
 import android.view.inputmethod.CompletionInfo;
 
 import java.util.ArrayList;
@@ -79,16 +78,10 @@ public class SuggestedWords {
         private boolean mIsPunctuationSuggestions;
         private boolean mShouldBlockAutoCorrectionBySafetyNet;
         private boolean mAllowsToBeAutoCorrected;
-        private List<SuggestedWordInfo> mSuggestedWordInfoList =
-                new ArrayList<SuggestedWordInfo>();
+        private final List<SuggestedWordInfo> mSuggestedWordInfoList;
 
-        public Builder() {
-            // Nothing to do here.
-        }
-
-        public Builder setWords(List<SuggestedWordInfo> suggestedWordInfoList) {
+        public Builder(final List<SuggestedWordInfo> suggestedWordInfoList) {
             mSuggestedWordInfoList = suggestedWordInfoList;
-            return this;
         }
 
         public static List<SuggestedWordInfo> getFromCharSequenceList(