diff --git a/android/gradle.properties b/android/gradle.properties
index 85b94f88ee157e1d1b3cec184c8948902443d36f..65eed6426393974efb5a056ec44936d42b5ef2a1 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.7
-app.versionCode=7
+app.versionName=0.0.8
+app.versionCode=8
diff --git a/fastlane/metadata/android/en-US/changelogs/8.txt b/fastlane/metadata/android/en-US/changelogs/8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..55d2c38b728a9b9b408dfd0c4298729ba2901783
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/8.txt
@@ -0,0 +1 @@
+Improve layout
diff --git a/fastlane/metadata/android/fr-FR/changelogs/8.txt b/fastlane/metadata/android/fr-FR/changelogs/8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f92e15972bfaa71ff32fcb01670f350a697249b9
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/8.txt
@@ -0,0 +1 @@
+Améliorations graphiques
diff --git a/lib/entity/counter.dart b/lib/entity/counter.dart
index e777835132cc4ed06b01f7459d5fbc05470822f5..f9ae8597d1f871e82b78346071505fc703891a38 100644
--- a/lib/entity/counter.dart
+++ b/lib/entity/counter.dart
@@ -7,7 +7,7 @@ class Counter {
   // Current counter
   bool _match = false; // Does this new tetrimino touch an other tetrimino of same player
   int _lines = 0; // Count lines fully filled by this new tetrimino
-  int _holes = 0; // Count hole non fillable caused by this new tetrimino
+  int _holes = 0; // Count non fillable holes caused by this new tetrimino
 
   // Points definitions
   int _base = 50;
@@ -19,13 +19,26 @@ class Counter {
   Color buttonIconColor = Colors.blue;
   double iconSize = 30.0;
 
+  TableRow spacer() {
+    double height = 7;
+    return TableRow(children: [
+      SizedBox(height: height),
+      SizedBox(height: height),
+      SizedBox(height: height),
+      SizedBox(height: height)
+    ]);
+  }
+
   Widget buildCounterWidget(Data myProvider) {
     return Container(
       child: Table(
         children: [
           buildMatchWidget(myProvider),
+          spacer(),
           buildLinesWidget(myProvider),
+          spacer(),
           buildHolesWidget(myProvider),
+          spacer(),
         ],
       ),
     );
diff --git a/lib/entity/player.dart b/lib/entity/player.dart
index 20f0e2b41068bc18d5459e8895987de3fc2dd919..fe637add88582623829d352a7846c31ff5acb827 100644
--- a/lib/entity/player.dart
+++ b/lib/entity/player.dart
@@ -36,16 +36,7 @@ class Player {
   }
 
   Widget buildManagerWidget(Data myProvider) {
-    List<Widget> items = [
-      Text(
-        _score.toString(),
-        style: TextStyle(
-          fontFamily: 'Blocks',
-          fontSize: 100,
-          fontWeight: FontWeight.bold,
-        ),
-      ),
-    ];
+    List<Widget> items = [];
 
     if (myProvider.currentPlayer == playerId) {
       items.add(_counter.buildCounterWidget(myProvider));
@@ -65,51 +56,94 @@ class Player {
   }
 
   Widget buildSubmitWidget(Data myProvider) {
-    return Row(
-      mainAxisAlignment: MainAxisAlignment.end,
-      crossAxisAlignment: CrossAxisAlignment.center,
-      children: [
-        Text(
-          '+' + _counter.computePoints().toString(),
-          style: TextStyle(
-            fontFamily: 'Blocks',
-            fontSize: 50,
-            fontWeight: FontWeight.bold,
+    double fontSize = 70;
+
+    return Container(
+      decoration: BoxDecoration(
+        border: Border(
+          top: BorderSide(
+            color: Colors.black,
+            width: 2,
           ),
         ),
-        SizedBox(
-          width: 10,
-        ),
-        IconButton(
-          padding: EdgeInsets.zero,
-          constraints: BoxConstraints(),
-          icon: Icon(
-            Icons.done_all,
-            color: Colors.amber,
-            size: 25,
+      ),
+      padding: EdgeInsets.only(
+        top: 5,
+      ),
+      child: Row(
+        mainAxisAlignment: MainAxisAlignment.end,
+        crossAxisAlignment: CrossAxisAlignment.center,
+        children: [
+          Text(
+            '+' + _counter.computePoints().toString(),
+            style: TextStyle(
+              fontFamily: 'Blocks',
+              fontSize: fontSize,
+              fontWeight: FontWeight.bold,
+            ),
           ),
-          onPressed: () {
-            _score = _score + _counter.computePoints();
-            _counter.reset();
-            myProvider.toggleCurrentPlayer();
-          },
-        ),
-        SizedBox(
-          width: 10,
-        ),
-      ],
+          SizedBox(
+            width: 10,
+          ),
+          IconButton(
+            padding: EdgeInsets.zero,
+            constraints: BoxConstraints(),
+            icon: Icon(
+              Icons.done_all,
+              color: Colors.orange,
+              size: fontSize / 2.5,
+            ),
+            onPressed: () {
+              _score = _score + _counter.computePoints();
+              _counter.reset();
+              myProvider.toggleCurrentPlayer();
+            },
+          ),
+          SizedBox(
+            width: 10,
+          ),
+        ],
+      ),
     );
   }
 
-  Widget buildPlayerBoard(Data myProvider, double screenWidth) {
-    double tetriminoBlockWidth = screenWidth / 2;
+  Widget buildPlayerBoard(Data myProvider, double screenWidth, bool isActive) {
+    double tetriminoBlockWidth = screenWidth / 2.3;
+    Color borderColor = isActive ? Colors.greenAccent : Colors.blueGrey;
+    double borderWidth = 10;
 
-    return Row(
+    return Column(
       mainAxisAlignment: MainAxisAlignment.center,
-      crossAxisAlignment: CrossAxisAlignment.start,
+      crossAxisAlignment: CrossAxisAlignment.end,
       children: [
-        buildTetriminoWidget(myProvider, tetriminoBlockWidth),
-        buildManagerWidget(myProvider),
+        Text(
+          _score.toString(),
+          style: TextStyle(
+            fontFamily: 'Blocks',
+            fontSize: 130,
+            fontWeight: FontWeight.bold,
+          ),
+        ),
+        Container(
+          decoration: BoxDecoration(
+            border: Border.all(
+              color: borderColor,
+              width: borderWidth,
+            ),
+          ),
+          child: Row(
+            mainAxisAlignment: MainAxisAlignment.center,
+            crossAxisAlignment: CrossAxisAlignment.start,
+            children: [
+              isActive
+                  ? buildTetriminoWidget(myProvider, tetriminoBlockWidth)
+                  : SizedBox(
+                      height: tetriminoBlockWidth,
+                    ),
+              buildManagerWidget(myProvider),
+            ],
+          ),
+        )
       ],
     );
   }
diff --git a/lib/layout/board.dart b/lib/layout/board.dart
index 8ee110186d129102c3ac6c334bf0c985fc46695b..34118b7efe03e5db5e1ba0a634ee357e6bc4c803 100644
--- a/lib/layout/board.dart
+++ b/lib/layout/board.dart
@@ -2,26 +2,16 @@ import 'package:flutter/material.dart';
 import 'package:tetrisdual/provider/data.dart';
 
 class Board {
-  static Container activePlayer(Widget playerBoard, bool active) {
-    Color borderColor = active ? Colors.greenAccent : Colors.blueGrey;
-
-    return Container(
-      decoration: BoxDecoration(
-        border: Border.all(
-          color: borderColor,
-          width: 15,
-        ),
-      ),
-      child: playerBoard,
-    );
-  }
-
   static Container buildGameBoard(Data myProvider, double screenWidth) {
     Widget player1 = new RotatedBox(
       quarterTurns: 2,
-      child: myProvider.getPlayer(1).buildPlayerBoard(myProvider, screenWidth),
+      child: myProvider
+          .getPlayer(1)
+          .buildPlayerBoard(myProvider, screenWidth, myProvider.currentPlayer == 1),
     );
-    Widget player2 = myProvider.getPlayer(2).buildPlayerBoard(myProvider, screenWidth);
+    Widget player2 = myProvider
+        .getPlayer(2)
+        .buildPlayerBoard(myProvider, screenWidth, myProvider.currentPlayer == 2);
 
     Widget togglePlayerWidget = GestureDetector(
       onTapUp: (details) {
@@ -40,9 +30,9 @@ class Board {
         mainAxisAlignment: MainAxisAlignment.spaceBetween,
         crossAxisAlignment: CrossAxisAlignment.center,
         children: [
-          activePlayer(player1, myProvider.currentPlayer == 1),
+          player1,
           togglePlayerWidget,
-          activePlayer(player2, myProvider.currentPlayer == 2),
+          player2,
         ],
       ),
     );
diff --git a/lib/layout/board_painter.dart b/lib/layout/board_painter.dart
index 47c4d30b8348cdb04366b076d4fa57fb556ca493..1ec3cc1b91c718e077b8761b9009767e8e75c2b6 100644
--- a/lib/layout/board_painter.dart
+++ b/lib/layout/board_painter.dart
@@ -42,7 +42,7 @@ class BoardPainter extends CustomPainter {
 
     // Border lines
     final paintPixelBorder = Paint();
-    paintPixelBorder.color = Colors.white;
+    paintPixelBorder.color = Colors.grey.shade200;
     paintPixelBorder.style = PaintingStyle.stroke;
     paintPixelBorder.strokeWidth = 4;
     pixels.forEach((pixel) {
@@ -61,7 +61,7 @@ class BoardPainter extends CustomPainter {
 
     // Fill background
     final paintBackground = Paint();
-    paintBackground.color = Colors.black;
+    paintBackground.color = Colors.grey.shade800;
     paintBackground.style = PaintingStyle.fill;
 
     final Rect rectBackground = Rect.fromPoints(Offset(0, 0), Offset(drawSize, drawSize));