diff --git a/android/gradle.properties b/android/gradle.properties
index d6af5de7dd3b01541eb540fa8dfd4d0caed97461..7d3ad5fb1ba80989d0c88e55ec415fdc9f5d25f7 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.0.45
-app.versionCode=45
+app.versionName=0.0.46
+app.versionCode=46
diff --git a/fastlane/metadata/android/en-US/changelogs/46.txt b/fastlane/metadata/android/en-US/changelogs/46.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1a454239e41f6dbb1928a7414814e0d2ed3dac4d
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/46.txt
@@ -0,0 +1 @@
+Improve code in data provider
diff --git a/fastlane/metadata/android/fr-FR/changelogs/46.txt b/fastlane/metadata/android/fr-FR/changelogs/46.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3faeb72feff1b6717e0c696ad754bfaa375a7ffc
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/46.txt
@@ -0,0 +1 @@
+Améliorations du code du fournisseur de données
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
index d685c364291b7429dd292f41b6e61275507eb8d7..5deb9c48c7b0f066f9e79550b0d15f22bf176835 100644
--- a/lib/provider/data.dart
+++ b/lib/provider/data.dart
@@ -6,53 +6,57 @@ class Data extends ChangeNotifier {
   int _tilesCount = 4;
 
   // application data
-  List _images = [];
-  String _image = '';
+  List _availableImages = [];
+  String _selectedImage = '';
   List<MovingTile> _tiles = [];
 
   // application state
   bool _isShufflingBoard = false;
-  bool _displayTipImage = false;
+  bool _isTipImageDisplayed = false;
 
-  String get image => _image;
+  String get selectedImage => _selectedImage;
 
-  set updateImage(String value) {
-    _image = value;
+  void updateSelectedImage(String value) {
+    _selectedImage = value;
     notifyListeners();
   }
 
+  void resetSelectedImage() {
+    updateSelectedImage('');
+  }
+
   int get tilesCount => _tilesCount;
 
-  set updateTilesCount(int value) {
-    _tilesCount = value;
+  void updateTilesCount(int tilesCountPerSide) {
+    _tilesCount = tilesCountPerSide;
     notifyListeners();
   }
 
-  List get images => _images;
+  List get availableImages => _availableImages;
 
-  set updateImages(List value) {
-    _images = value;
+  void updateAvailableImages(List availableImages) {
+    _availableImages = availableImages;
     notifyListeners();
   }
 
   List<MovingTile> get tiles => _tiles;
 
-  set updateTiles(List<MovingTile> value) {
-    _tiles = value;
+  void updateTiles(List<MovingTile> tiles) {
+    _tiles = tiles;
     notifyListeners();
   }
 
   bool get isShufflingBoard => _isShufflingBoard;
 
-  set updateIsShufflingBoard(bool value) {
-    _isShufflingBoard = value;
+  void updateIsShufflingBoard(bool isShuffling) {
+    _isShufflingBoard = isShuffling;
     notifyListeners();
   }
 
-  bool get displayTipImage => _displayTipImage;
+  bool get displayTipImage => _isTipImageDisplayed;
 
-  set updateDisplayTipImage(bool value) {
-    _displayTipImage = value;
+  void updateIsTipImageDisplayed(bool isDisplayed) {
+    _isTipImageDisplayed = isDisplayed;
     notifyListeners();
   }
 
@@ -76,9 +80,4 @@ class Data extends ChangeNotifier {
 
     notifyListeners();
   }
-
-  void resetGame() {
-    _image = '';
-    notifyListeners();
-  }
 }
diff --git a/lib/screens/game.dart b/lib/screens/game.dart
index 09b9af1ef0f8ea46f53ded0c9cad26259c6c59d6..4c63e598502bca7d285893c3ea5c27c1f2b613bf 100644
--- a/lib/screens/game.dart
+++ b/lib/screens/game.dart
@@ -5,7 +5,7 @@ import 'package:puzzlegame/utils/game_utils.dart';
 
 class Game {
   static void toggleDisplayTipImage(Data myProvider) {
-    myProvider.updateDisplayTipImage = !myProvider.displayTipImage;
+    myProvider.updateIsTipImageDisplayed(!myProvider.displayTipImage);
   }
 
   static Container buildTilesetWidget(Data myProvider) {
@@ -79,7 +79,7 @@ class Game {
                       child: Image(
                         image: AssetImage(
                           myProvider.displayTipImage
-                              ? GameUtils.getImageAssetName(myProvider.image)
+                              ? GameUtils.getImageAssetName(myProvider.selectedImage)
                               : 'assets/icons/tip_hidden.png',
                         ),
                         fit: BoxFit.contain,
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 9f5697a267fe23e66befdff69771fbac659a6c65..3db611e9f1f3e81050cbe7fa53c1e73675c05f31 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -18,22 +18,22 @@ class Home extends StatelessWidget {
     GetImagesList getImagesList;
     getImagesList = GetImagesList();
     await getImagesList.init();
-    if (getImagesList.images.isNotEmpty) {
-      myProvider.updateImages = getImagesList.images;
+    if (getImagesList.availableImages.isNotEmpty) {
+      myProvider.updateAvailableImages(getImagesList.availableImages);
       shuffleAvailableImages(myProvider);
     }
   }
 
   Future<void> selectImage(Data myProvider, String imageCode, double tileImageSize) async {
-    myProvider.updateIsShufflingBoard = true;
-    myProvider.updateImage = imageCode;
+    myProvider.updateIsShufflingBoard(true);
+    myProvider.updateSelectedImage(imageCode);
     GameUtils.startGame(myProvider, tileImageSize);
   }
 
   void shuffleAvailableImages(Data myProvider) {
-    List images = myProvider.images;
+    List images = myProvider.availableImages;
     images.shuffle();
-    myProvider.updateImages = images;
+    myProvider.updateAvailableImages(images);
   }
 
   Container _buildImageSelectorItem(Data myProvider, String image, double tileImageSize) {
@@ -63,10 +63,10 @@ class Home extends StatelessWidget {
   }
 
   Container _buildImageSelector(Data myProvider, double tileImageSize) {
-    if (myProvider.images.length == 0) {
+    if (myProvider.availableImages.length == 0) {
       getImagesList(myProvider);
     }
-    List images = myProvider.images;
+    List images = myProvider.availableImages;
 
     return Container(
       padding: EdgeInsets.all(2),
@@ -122,7 +122,7 @@ class Home extends StatelessWidget {
         ),
       ),
       onPressed: () {
-        myProvider.updateTilesCount = value;
+        myProvider.updateTilesCount(value);
       },
     );
   }
@@ -139,7 +139,7 @@ class Home extends StatelessWidget {
       content = Game.buildShufflingIndicatorWidget();
       precacheImage(new AssetImage('assets/icons/game_win.png'), context);
     } else {
-      if (_myProvider.image == '') {
+      if (_myProvider.selectedImage == '') {
         content = _buildImageSelector(_myProvider, _tileImageSize);
       } else {
         content = Game.buildGameWidget(_myProvider);
@@ -190,7 +190,7 @@ class Home extends StatelessWidget {
     return Scaffold(
       appBar: AppBar(
         backgroundColor: themePrimaryColor,
-        actions: _myProvider.image == '' ? menuActions : gameActions,
+        actions: _myProvider.selectedImage == '' ? menuActions : gameActions,
       ),
       body: SafeArea(
         child: Center(child: content),
diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart
index ec6b9c63af8e2ee4779bf16b9d6ffaaec74ed343..c22242a4712c7616c373b99915c680cba9b2b5ea 100644
--- a/lib/utils/game_utils.dart
+++ b/lib/utils/game_utils.dart
@@ -21,8 +21,8 @@ class GameUtils {
   }
 
   static Future<void> resetGame(Data myProvider) async {
-    myProvider.updateImage = '';
-    myProvider.updateDisplayTipImage = false;
+    myProvider.resetSelectedImage();
+    myProvider.updateIsTipImageDisplayed(false);
   }
 
   static bool checkTilesetIsCleared(List<MovingTile> tiles) {
@@ -59,7 +59,7 @@ class GameUtils {
   }
 
   static Future<void> splitImageInTiles(Data myProvider, double tileImageSize) async {
-    String imageAsset = getImageAssetName(myProvider.image);
+    String imageAsset = getImageAssetName(myProvider.selectedImage);
     Uint8List imageData = (await rootBundle.load(imageAsset)).buffer.asUint8List();
 
     imglib.Image image = imglib.decodeImage(imageData) ?? imglib.Image.fromBytes(1, 1, []);
@@ -94,7 +94,7 @@ class GameUtils {
       y += height;
     }
 
-    myProvider.updateTiles = shuffleMovingTiles(tiles);
-    myProvider.updateIsShufflingBoard = false;
+    myProvider.updateTiles(shuffleMovingTiles(tiles));
+    myProvider.updateIsShufflingBoard(false);
   }
 }
diff --git a/lib/utils/get_images_list.dart b/lib/utils/get_images_list.dart
index 3f590aa7da93f14ff54286a6c4675c9b1225436a..4f5f4f139fc9b24370c8b97963122055bbc6aa0b 100644
--- a/lib/utils/get_images_list.dart
+++ b/lib/utils/get_images_list.dart
@@ -5,7 +5,7 @@ import 'package:flutter/services.dart';
 class GetImagesList {
   GetImagesList();
 
-  List _images = [];
+  List _availableImages = [];
 
   init() async {
     await imagesFromLocalFile();
@@ -17,14 +17,14 @@ class GetImagesList {
       jsonString = await rootBundle.loadString('assets/files/images.json');
       final jsonResponse = await json.decode(jsonString);
       List imagesList = jsonResponse['images'];
-      _images = imagesList;
+      _availableImages = imagesList;
     } catch (e) {
-      _images = [];
+      _availableImages = [];
     }
 
     // Remove empty images
-    _images.removeWhere((value) => (value == ''));
+    _availableImages.removeWhere((value) => (value == ''));
   }
 
-  List get images => _images;
+  List get availableImages => _availableImages;
 }
diff --git a/pubspec.lock b/pubspec.lock
index 572027bd77a77a46a4c3f8be3b25707e81d26b5e..ec91274256d16ff49b60d063305a41fec2049d15 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,7 +7,7 @@ packages:
       name: archive
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "3.3.0"
+    version: "3.3.1"
   async:
     dependency: transitive
     description: