diff --git a/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt b/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt
index 1fc176c0437eb52d5d4d6cb6b9830f1cce4ff548..dcde4b3092f4afc0c66332150c95c2d2aacc4711 100644
--- a/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt
+++ b/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt
@@ -10,12 +10,16 @@ class GameViewModel: ViewModel() {
     private var _currentWordCount = 0
     val currentWordCount: Int
         get() = _currentWordCount
-    private var _currentScrambledWord = "test"
+
+    private lateinit var _currentScrambledWord: String
     val currentScrambledWord: String
         get() = _currentScrambledWord
+    private var wordsList: MutableList<String> = mutableListOf()
+    private lateinit var currentWord: String
 
     init {
         Log.d("GameFragment", "GameViewModel created!")
+        getNextWord()
     }
 
     override fun onCleared() {
@@ -23,4 +27,27 @@ class GameViewModel: ViewModel() {
         Log.d("GameFragment", "GameViewModel destroyed!")
     }
 
+    fun getNextWord() {
+        currentWord = allWordsList.random()
+        val tempWord = currentWord.toCharArray()
+        tempWord.shuffle()
+        while (String(tempWord).equals(currentWord, false)) {
+            tempWord.shuffle()
+        }
+        if (wordsList.contains(currentWord)) {
+            getNextWord()
+        } else {
+            _currentScrambledWord = String(tempWord)
+            ++_currentWordCount
+            wordsList.add(currentWord)
+        }
+    }
+
+    fun nextWord(): Boolean {
+        return if (currentWordCount < MAX_NO_OF_WORDS) {
+            getNextWord()
+            true
+        } else false
+    }
+
 }
\ No newline at end of file