diff --git a/android/gradle.properties b/android/gradle.properties
index 8428396279dc613121c9135b45f1241150c9db53..24d6ef87a0f500a457d89af29b7beaad6d91075f 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.1.8
-app.versionCode=32
+app.versionName=0.1.9
+app.versionCode=33
diff --git a/lib/screens/game_pick_word.dart b/lib/screens/game_pick_word.dart
index 8686e58f08c66a5a2dfdb0eaa6aa8932614b95ab..7fbe0092bfee585cb979d9ddcede7e2196532c22 100644
--- a/lib/screens/game_pick_word.dart
+++ b/lib/screens/game_pick_word.dart
@@ -2,11 +2,11 @@ import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 
 import '../provider/data.dart';
-import '../utils/random_pick_word.dart';
-import '../utils/random_pick_image.dart';
+import '../utils/random_pick_data.dart';
 
 class GamePickWordPage extends StatelessWidget {
-  int _count = 4;
+  int _countWords = 4;
+  int _countImages = 4;
 
   Future<void> startGame(Data myProvider, String lang) async {
     await resetGame(myProvider);
@@ -31,32 +31,26 @@ class GamePickWordPage extends StatelessWidget {
   Future<void> pickData(Data myProvider) async {
     List words;
     List images;
-    RandomPickWord randomPickWord;
-    RandomPickImage randomPickImage;
+    RandomPickData randomPickData;
     Map word;
 
     int attempts = 0;
     do {
-      randomPickWord = RandomPickWord();
-      await randomPickWord.init(myProvider.lang, _count);
+      randomPickData = RandomPickData();
+      await randomPickData.init(myProvider.lang, _countWords, _countImages);
 
-      if (randomPickWord.words != null) {
-        words = randomPickWord.words;
+      if (randomPickData.words != null) {
+        words = randomPickData.words;
         word = words.take(1).toList()[0];
-        randomPickImage = RandomPickImage();
-        await randomPickImage.init(word['key'], _count);
-        if (randomPickImage.images != null) {
-          images = randomPickImage.images;
-          break;
-        }
+        images = word['images'];
       }
       attempts++;
     } while (attempts < 3);
 
     if (
-      ((words != null) && (words.length == _count))
+      ((words != null) && (words.length == _countWords))
       &&
-      ((images != null) && (images.length == _count))
+      ((images != null) && (images.length == _countImages))
     ) {
       myProvider.updateWord = word;
       myProvider.updateOtherWords = words.skip(1).toList();
@@ -157,7 +151,7 @@ class GamePickWordPage extends StatelessWidget {
   }
 
   Column _buildImageItemsBlock(List images) {
-    if ((images == null) || (images.length != _count)) {
+    if ((images == null) || (images.length != _countImages)) {
       return Column();
     }
 
@@ -207,7 +201,7 @@ class GamePickWordPage extends StatelessWidget {
     Map word = myProvider.word;
     List otherWords = myProvider.otherWords;
 
-    if ((word == null) || (otherWords.length != (_count - 1))) {
+    if ((word == null) || (otherWords.length != (_countWords - 1))) {
       return Column();
     }
 
diff --git a/lib/utils/random_pick_data.dart b/lib/utils/random_pick_data.dart
new file mode 100644
index 0000000000000000000000000000000000000000..553bba6e0283181e92605952afe6e0a969e9d5f2
--- /dev/null
+++ b/lib/utils/random_pick_data.dart
@@ -0,0 +1,45 @@
+import 'dart:async';
+import 'dart:convert';
+import 'package:flutter/services.dart';
+
+import 'random_pick_word.dart';
+import 'random_pick_image.dart';
+
+class RandomPickData {
+  RandomPickData();
+
+  List _words;
+
+  init(String lang, int wordsCount, int imagesPerWordCount) async {
+    _words = new List(wordsCount);
+    await getWordsAndImages(lang, wordsCount, imagesPerWordCount);
+  }
+
+  Future<void> getWordsAndImages(String lang, int wordsCount, int imagesPerWordCount) async {
+    RandomPickWord randomPickWord;
+    RandomPickImage randomPickImage;
+
+    List pickedWords;
+
+    randomPickWord = RandomPickWord();
+    await randomPickWord.init(lang, wordsCount);
+
+    if (randomPickWord.words != null) {
+      pickedWords = randomPickWord.words;
+
+      for (var i = 0; i < pickedWords.length; i++) {
+          Map word = pickedWords[i];
+
+          randomPickImage = RandomPickImage();
+          await randomPickImage.init(word['key'], imagesPerWordCount);
+          if (randomPickImage.images != null) {
+            pickedWords[i]['images'] = randomPickImage.images;
+          }
+      }
+    }
+
+    _words = pickedWords;
+  }
+
+  List get words => _words;
+}