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/assets/icons/colors_5.png b/assets/icons/colors_5.png
new file mode 100644
index 0000000000000000000000000000000000000000..24d2901517b7665bbbf0b7e65540f670fd9ac661
Binary files /dev/null and b/assets/icons/colors_5.png differ
diff --git a/assets/icons/colors_6.png b/assets/icons/colors_6.png
new file mode 100644
index 0000000000000000000000000000000000000000..d63b706a2b06e1204e1bff85a0035595953ae8e0
Binary files /dev/null and b/assets/icons/colors_6.png differ
diff --git a/assets/icons/colors_7.png b/assets/icons/colors_7.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ba87aece63cb2ae9589e04100081bd6fd225c2b
Binary files /dev/null and b/assets/icons/colors_7.png differ
diff --git a/assets/icons/colors_8.png b/assets/icons/colors_8.png
new file mode 100644
index 0000000000000000000000000000000000000000..534373e179076daa289a71e20dff9580310b38a9
Binary files /dev/null and b/assets/icons/colors_8.png differ
diff --git a/assets/icons/size_extra.png b/assets/icons/size_extra.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3401d9dd4df7a871eb7ac88592707f63480d0dc
Binary files /dev/null and b/assets/icons/size_extra.png differ
diff --git a/assets/icons/size_large.png b/assets/icons/size_large.png
new file mode 100644
index 0000000000000000000000000000000000000000..18b3420564654a9adf32e5a91d0d41f82fd4e2ce
Binary files /dev/null and b/assets/icons/size_large.png differ
diff --git a/assets/icons/size_medium.png b/assets/icons/size_medium.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b4f7754fb46de7cf2ddfc265da900bf77cc0d3e
Binary files /dev/null and b/assets/icons/size_medium.png differ
diff --git a/assets/icons/size_small.png b/assets/icons/size_small.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c72840d2dfe2dfb36791973a159869a325de758
Binary files /dev/null and b/assets/icons/size_small.png differ
diff --git a/icons/build_game_icons.sh b/icons/build_game_icons.sh
index 94c69eac52c72562dde5c6084032aecac4eab08a..ac70e5f192fe3e41445450fc056e74b8178dc389 100755
--- a/icons/build_game_icons.sh
+++ b/icons/build_game_icons.sh
@@ -19,10 +19,18 @@ AVAILABLE_GAME_IMAGES="
   button_start
   game_fail
   game_win
+  colors_5
+  colors_6
+  colors_7
+  colors_8
   level_easy
   level_medium
   level_hard
   level_nightmare
+  size_small
+  size_medium
+  size_large
+  size_extra
 "
 
 # Skins
diff --git a/icons/colors_5.svg b/icons/colors_5.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bdf66c39a94457f9beab5db10fd3fe85a75faddf
--- /dev/null
+++ b/icons/colors_5.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#97c05c" stroke="#000" stroke-width="2"/><g transform="translate(-1.0061 .33115)" aria-label="5"><path d="m63.315 55.063q0 2.2656-0.85938 4.2188-0.83984 1.9336-2.4609 3.3203-1.7969 1.4844-4.1406 2.207-2.3242 0.70312-5.3125 0.70312-3.4961-0.01953-5.918-0.56641-2.4023-0.52734-3.9258-1.1914v-6.4258h0.82031q1.7773 1.0547 3.8281 1.7578t4.082 0.70312q1.2305 0 2.6562-0.27344 1.4453-0.29297 2.2852-1.0352 0.66406-0.60547 0.99609-1.2305 0.35156-0.625 0.35156-1.9336 0-1.0156-0.46875-1.7383-0.44922-0.74219-1.1719-1.1914-1.0547-0.64453-2.5391-0.83984-1.4844-0.21484-2.6953-0.21484-1.7578 0-3.3789 0.3125-1.6016 0.29297-2.8125 0.58594h-0.85938v-16.406h20.684v5.5664h-13.633v4.7461q0.60547-0.03906 1.5234-0.05859 0.9375-0.03906 1.6406-0.03906 2.4023 0 4.2773 0.46875 1.8945 0.44922 3.2617 1.2695 1.7773 1.0742 2.7734 2.8516 0.99609 1.7578 0.99609 4.4336z"/></g></svg>
diff --git a/icons/colors_6.svg b/icons/colors_6.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4c0099493244bd844c5fb2ed6d173a5253569548
--- /dev/null
+++ b/icons/colors_6.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#f29c38" stroke="#000" stroke-width="2"/><g transform="translate(3.8694 .21001)" aria-label="6"><path d="m59.025 55.399q0 2.2461-0.82031 4.2188t-2.3047 3.3203q-1.582 1.4453-3.6719 2.207-2.0703 0.76172-4.8633 0.76172-2.6172 0-4.7852-0.70312-2.1484-0.72266-3.6914-2.1875-1.7773-1.6797-2.7148-4.3359t-0.9375-6.3477q0-3.8281 0.87891-6.7969t2.8711-5.2539q1.9141-2.1875 4.9609-3.3984 3.0664-1.2109 7.2852-1.2109 1.4258 0 3.125 0.19531t2.207 0.29297v5.7227h-0.74219q-0.52734-0.25391-1.7969-0.56641-1.25-0.33203-2.8516-0.33203-3.75 0-5.8398 1.8359t-2.5195 5.1172q1.5039-0.89844 3.1641-1.4453 1.6797-0.56641 3.6133-0.56641 1.6992 0 3.1445 0.39062 1.4648 0.39062 2.7148 1.25 1.6211 1.1328 2.5977 3.0469 0.97656 1.9141 0.97656 4.7852zm-8.8867 4.3945q0.60547-0.66406 0.95703-1.5625 0.37109-0.91797 0.37109-2.4805 0-1.4258-0.41016-2.3242-0.41016-0.91797-1.1328-1.4648-0.70312-0.54688-1.6602-0.74219-0.95703-0.21484-1.9727-0.21484-0.85938 0-1.7969 0.19531-0.9375 0.19531-1.7188 0.48828 0 0.19531-0.01953 0.64453t-0.01953 1.1328q0 2.4023 0.46875 3.9648 0.48828 1.543 1.2891 2.3633 0.54688 0.60547 1.2891 0.89844 0.74219 0.27344 1.6016 0.27344 0.64453 0 1.4258-0.29297t1.3281-0.87891z"/></g></svg>
diff --git a/icons/colors_7.svg b/icons/colors_7.svg
new file mode 100644
index 0000000000000000000000000000000000000000..55f53eb6172993b314fd036fb190775460fb8630
--- /dev/null
+++ b/icons/colors_7.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#cd5542" stroke="#000" stroke-width="2"/><g transform="translate(3.9378 .2393)" aria-label="7"><path d="m58.459 42.001-13.164 23.301h-8.3594l13.672-23.516h-14.941v-5.5664h22.793z"/></g></svg>
diff --git a/icons/colors_8.svg b/icons/colors_8.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7633afb50d26929c7e2df576f0fb60474da37140
--- /dev/null
+++ b/icons/colors_8.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#6041b0" stroke="#000" stroke-width="2"/><g transform="translate(4.1624 .2393)" aria-label="8"><path d="m59.123 57.177q0 3.8672-3.3008 6.3281-3.2812 2.4609-9.0234 2.4609-3.2227 0-5.5273-0.66406-2.3047-0.66406-3.8086-1.8359-1.4844-1.1523-2.207-2.6953-0.70312-1.543-0.70312-3.3203 0-2.1875 1.2695-3.8672 1.2891-1.6992 4.4336-2.9688v-0.11719q-2.5391-1.1719-3.7305-2.9492t-1.1914-4.1211q0-3.457 3.2031-5.6641 3.2031-2.207 8.3398-2.207 5.3906 0 8.4375 2.0117 3.0664 1.9922 3.0664 5.332 0 2.0703-1.2891 3.6914t-3.9453 2.7539v0.11719q3.0469 1.1523 4.5117 3.1055t1.4648 4.6094zm-8.0664-13.438q0-1.4844-1.1523-2.3633-1.1328-0.87891-3.0273-0.87891-0.70312 0-1.4453 0.17578-0.72266 0.17578-1.3281 0.50781-0.56641 0.33203-0.9375 0.87891-0.37109 0.52734-0.37109 1.2109 0 1.1523 0.64453 1.7969 0.66406 0.64453 2.1484 1.2891 0.54688 0.23438 1.4844 0.58594 0.95703 0.33203 2.3047 0.76172 0.89844-1.0547 1.2891-1.8945 0.39062-0.83984 0.39062-2.0703zm0.60547 13.77q0-1.4062-0.70312-2.1289t-2.8906-1.6602q-0.64453-0.29297-1.875-0.72266-1.2305-0.42969-2.0703-0.74219-0.83984 0.76172-1.5234 1.8555-0.66406 1.0742-0.66406 2.4219 0 2.0312 1.4453 3.2422 1.4648 1.1914 3.8086 1.1914 0.625 0 1.4648-0.17578 0.83984-0.19531 1.4453-0.58594 0.70312-0.44922 1.1328-1.0547 0.42969-0.60547 0.42969-1.6406z"/></g></svg>
diff --git a/icons/size_extra.svg b/icons/size_extra.svg
new file mode 100644
index 0000000000000000000000000000000000000000..fe07dfb952480afa9c7c9e0ab2af9879f9b2ad6a
--- /dev/null
+++ b/icons/size_extra.svg
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="0" fill="#5f41af" stroke="#000" stroke-width="2"/>
+  <g transform="translate(4.4197 1.4084)" fill="#fff" stroke="#282828" stroke-linecap="round" stroke-width="3"><rect x="13.796" y="16.807" width="12.714" height="12.714"/><rect x="26.51" y="16.807" width="12.714" height="12.714"/><rect x="39.223" y="16.807" width="12.714" height="12.714"/><rect x="51.937" y="16.807" width="12.714" height="12.714"/><rect x="64.651" y="16.807" width="12.714" height="12.714"/><rect x="13.796" y="29.521" width="12.714" height="12.714"/><rect x="26.51" y="29.521" width="12.714" height="12.714"/><rect x="39.223" y="29.521" width="12.714" height="12.714"/><rect x="51.937" y="29.521" width="12.714" height="12.714"/><rect x="64.651" y="29.521" width="12.714" height="12.714"/><rect x="13.796" y="42.235" width="12.714" height="12.714"/><rect x="26.51" y="42.235" width="12.714" height="12.714"/><rect x="39.223" y="42.235" width="12.714" height="12.714"/><rect x="51.937" y="42.235" width="12.714" height="12.714"/><rect x="64.651" y="42.235" width="12.714" height="12.714"/><rect x="13.796" y="54.948" width="12.714" height="12.714"/><rect x="26.51" y="54.948" width="12.714" height="12.714"/><rect x="39.223" y="54.948" width="12.714" height="12.714"/><rect x="51.937" y="54.948" width="12.714" height="12.714"/><rect x="64.651" y="54.948" width="12.714" height="12.714"/><rect x="13.796" y="67.662" width="12.714" height="12.714"/><rect x="26.51" y="67.662" width="12.714" height="12.714"/><rect x="39.223" y="67.662" width="12.714" height="12.714"/><rect x="51.937" y="67.662" width="12.714" height="12.714"/><rect x="64.651" y="67.662" width="12.714" height="12.714"/></g></svg>
diff --git a/icons/size_large.svg b/icons/size_large.svg
new file mode 100644
index 0000000000000000000000000000000000000000..174a5301a12bf2137b6e5de4cb2431d56ee4f660
--- /dev/null
+++ b/icons/size_large.svg
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="0" fill="#cd5542" stroke="#000" stroke-width="2"/>
+  <g transform="translate(6.2763 8.2075)" fill="#fff" stroke="#282828" stroke-linecap="round" stroke-width="3"><rect x="18.296" y="16.365" width="12.714" height="12.714"/><rect x="31.01" y="16.365" width="12.714" height="12.714"/><rect x="43.724" y="16.365" width="12.714" height="12.714"/><rect x="56.437" y="16.365" width="12.714" height="12.714"/><rect x="18.296" y="29.079" width="12.714" height="12.714"/><rect x="31.01" y="29.079" width="12.714" height="12.714"/><rect x="43.724" y="29.079" width="12.714" height="12.714"/><rect x="56.437" y="29.079" width="12.714" height="12.714"/><rect x="18.296" y="41.792" width="12.714" height="12.714"/><rect x="31.01" y="41.792" width="12.714" height="12.714"/><rect x="43.724" y="41.792" width="12.714" height="12.714"/><rect x="56.437" y="41.792" width="12.714" height="12.714"/><rect x="18.296" y="54.506" width="12.714" height="12.714"/><rect x="31.01" y="54.506" width="12.714" height="12.714"/><rect x="43.724" y="54.506" width="12.714" height="12.714"/><rect x="56.437" y="54.506" width="12.714" height="12.714"/></g></svg>
diff --git a/icons/size_medium.svg b/icons/size_medium.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bcc2fbaa18cd06829e8f6cfd8ab460c699929e9a
--- /dev/null
+++ b/icons/size_medium.svg
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="0" fill="#f29c38" stroke="#000" stroke-width="2"/>
+  <g transform="translate(11.967 8.1117)" fill="#fff" stroke="#282828" stroke-linecap="round" stroke-width="3"><rect x="18.962" y="22.818" width="12.714" height="12.714"/><rect x="31.676" y="22.818" width="12.714" height="12.714"/><rect x="44.389" y="22.818" width="12.714" height="12.714"/><rect x="18.962" y="35.531" width="12.714" height="12.714"/><rect x="31.676" y="35.531" width="12.714" height="12.714"/><rect x="44.389" y="35.531" width="12.714" height="12.714"/><rect x="18.962" y="48.245" width="12.714" height="12.714"/><rect x="31.676" y="48.245" width="12.714" height="12.714"/><rect x="44.389" y="48.245" width="12.714" height="12.714"/></g></svg>
diff --git a/icons/size_small.svg b/icons/size_small.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1ccb6e958123c30999e47b54e784a398205c55d0
--- /dev/null
+++ b/icons/size_small.svg
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="0" fill="#97c05c" stroke="#000" stroke-width="2"/>
+  <g transform="translate(8.8715 12.603)" fill="#fff" stroke="#282828" stroke-linecap="round" stroke-width="3"><rect x="28.415" y="24.683" width="12.714" height="12.714"/><rect x="41.128" y="24.683" width="12.714" height="12.714"/><rect x="28.415" y="37.397" width="12.714" height="12.714"/><rect x="41.128" y="37.397" width="12.714" height="12.714"/></g></svg>
diff --git a/lib/entities/cell.dart b/lib/entities/cell.dart
index 57d927aba28b3c2e846740674bec0fd20979d3cf..9129f4da0bd6d77403423991776698996cea8b70 100644
--- a/lib/entities/cell.dart
+++ b/lib/entities/cell.dart
@@ -56,7 +56,7 @@ class Cell {
 
   String getImageAssetName(Data myProvider) {
     int cellValue = this.value;
-    return 'assets/skins/' + myProvider.skin + '_' + cellValue.toString() + '.png';
+    return 'assets/skins/' + myProvider.parameterSkin + '_' + cellValue.toString() + '.png';
   }
 
 }
diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart
index f0c097923c719756eea304d64f4c087938a07e72..c901d7b9de78bf8e5796eac4ef006d858ee46e38 100644
--- a/lib/layout/parameters.dart
+++ b/lib/layout/parameters.dart
@@ -13,7 +13,11 @@ class Parameters {
         mainAxisSize: MainAxisSize.min,
         mainAxisAlignment: MainAxisAlignment.center,
         children: [
-          Parameters.buildParameterSelector(myProvider, 'level'),
+          // Parameters.buildParameterSelector(myProvider, 'level'),
+          // SizedBox(height: 5),
+          Parameters.buildParameterSelector(myProvider, 'size'),
+          SizedBox(height: 5),
+          Parameters.buildParameterSelector(myProvider, 'colors'),
           SizedBox(height: 5),
           Parameters.buildParameterSelector(myProvider, 'skin'),
           SizedBox(height: 5),
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
index 8025bb5b603808a4938886b94a01022801a68850..96edef94c729dca697fa030548bb3bd5b2119c3e 100644
--- a/lib/provider/data.dart
+++ b/lib/provider/data.dart
@@ -5,16 +5,30 @@ class Data extends ChangeNotifier {
 
   // Configuration available values
   List _availableLevelValues = ['easy', 'medium', 'hard', 'nightmare'];
+  List _availableSizeValues = ['small', 'medium', 'large', 'extra'];
+  List _availableColorsValues = ['5', '6', '7', '8'];
   List _availableSkinValues = ['default', 'retro', 'symbols'];
 
   List get availableLevelValues => _availableLevelValues;
+  List get availableSizeValues => _availableSizeValues;
+  List get availableColorsValues => _availableColorsValues;
   List get availableSkinValues => _availableSkinValues;
 
   // Application default configuration
-  String _level = '';
-  String _levelDefault = 'medium';
-  String _skin = '';
-  String _skinDefault = 'default';
+  String _parameterLevel = '';
+  String _parameterLevelDefault = 'medium';
+  String _parameterSize = '';
+  String _parameterSizeDefault = 'medium';
+  String _parameterColors = '';
+  String _parameterColorsDefault = '6';
+  String _parameterSkin = '';
+  String _parameterSkinDefault = 'default';
+
+  // Application current configuration
+  String get parameterLevel => _parameterLevel;
+  String get parameterSize => _parameterSize;
+  String get parameterColors => _parameterColors;
+  String get parameterSkin => _parameterSkin;
 
   // Game data
   bool _gameIsRunning = false;
@@ -29,27 +43,35 @@ class Data extends ChangeNotifier {
   int _progressTotal = 0;
   int _progressDelta = 0;
 
-  String get level => _level;
-  void updateLevel(String level) {
-    _level = level;
-
-    updateBoardSize(getBoardSizeFromLevel(level));
-    updateColorsCount(getColorsCountFromLevel(level));
 
+  void updateParameterLevel(String parameterLevel) {
+    _parameterLevel = parameterLevel;
     notifyListeners();
   }
-
-  String get skin => _skin;
-  void updateSkin(String skin) {
-    _skin = skin;
+  void updateParameterSize(String parameterSize) {
+    _parameterSize = parameterSize;
+    updateBoardSize(getBoardSizeFromParameter(parameterSize));
+    notifyListeners();
+  }
+  void updateParameterColors(String parameterColors) {
+    _parameterColors = parameterColors;
+    updateColorsCount(getColorsCountFromParameter(parameterColors));
+    notifyListeners();
+  }
+  void updateParameterSkin(String parameterSkin) {
+    _parameterSkin = parameterSkin;
     notifyListeners();
   }
 
   getParameterValue(String parameterCode) {
     switch(parameterCode) {
-      case 'level': { return _level; }
+      case 'level': { return _parameterLevel; }
+      break;
+      case 'size': { return _parameterSize; }
       break;
-      case 'skin': { return _skin; }
+      case 'colors': { return _parameterColors; }
+      break;
+      case 'skin': { return _parameterSkin; }
       break;
     }
     return '';
@@ -59,6 +81,10 @@ class Data extends ChangeNotifier {
     switch(parameterCode) {
       case 'level': { return _availableLevelValues; }
       break;
+      case 'size': { return _availableSizeValues; }
+      break;
+      case 'colors': { return _availableColorsValues; }
+      break;
       case 'skin': { return _availableSkinValues; }
       break;
     }
@@ -67,9 +93,13 @@ class Data extends ChangeNotifier {
 
   setParameterValue(String parameterCode, String parameterValue) async {
     switch(parameterCode) {
-      case 'level': { updateLevel(parameterValue); }
+      case 'level': { updateParameterLevel(parameterValue); }
+      break;
+      case 'size': { updateParameterSize(parameterValue); }
       break;
-      case 'skin': { updateSkin(parameterValue); }
+      case 'colors': { updateParameterColors(parameterValue); }
+      break;
+      case 'skin': { updateParameterSkin(parameterValue); }
       break;
     }
     final prefs = await SharedPreferences.getInstance();
@@ -78,47 +108,49 @@ class Data extends ChangeNotifier {
 
   void initParametersValues() async {
     final prefs = await SharedPreferences.getInstance();
-    setParameterValue('level', prefs.getString('level') ?? _levelDefault);
-    setParameterValue('skin', prefs.getString('skin') ?? _skinDefault);
-  }
-
-  int get boardSize => _boardSize;
-  void updateBoardSize(int boardSize) {
-    _boardSize = boardSize;
-    _progressTotal = boardSize * boardSize;
+    setParameterValue('level', prefs.getString('level') ?? _parameterLevelDefault);
+    setParameterValue('size', prefs.getString('size') ?? _parameterSizeDefault);
+    setParameterValue('colors', prefs.getString('colors') ?? _parameterColorsDefault);
+    setParameterValue('skin', prefs.getString('skin') ?? _parameterSkinDefault);
   }
 
-  int get colorsCount => _colorsCount;
-  void updateColorsCount(int colorsCount) {
-    _colorsCount = colorsCount;
-  }
-
-  int getBoardSizeFromLevel(String level) {
-    switch(level) {
-      case 'easy': { return 6; }
+  int getBoardSizeFromParameter(String parameterSize) {
+    switch(parameterSize) {
+      case 'small': { return 6; }
       break;
       case 'medium': { return 10; }
       break;
-      case 'hard': { return 14; }
+      case 'large': { return 14; }
       break;
-      case 'nightmare': { return 20; }
+      case 'extra': { return 20; }
       break;
     }
-    return 8;
+    return getBoardSizeFromParameter(_parameterSizeDefault);
   }
 
-  int getColorsCountFromLevel(String level) {
-    switch(level) {
-      case 'easy': { return 4; }
+  int getColorsCountFromParameter(String parameterColors) {
+    switch(parameterColors) {
+      case '5': { return 5; }
       break;
-      case 'medium': { return 5; }
+      case '6': { return 6; }
       break;
-      case 'hard': { return 6; }
+      case '7': { return 7; }
       break;
-      case 'nightmare': { return 7; }
+      case '8': { return 8; }
       break;
     }
-    return 4;
+    return getColorsCountFromParameter(_parameterColorsDefault);
+  }
+
+  int get boardSize => _boardSize;
+  void updateBoardSize(int boardSize) {
+    _boardSize = boardSize;
+    _progressTotal = boardSize * boardSize;
+  }
+
+  int get colorsCount => _colorsCount;
+  void updateColorsCount(int colorsCount) {
+    _colorsCount = colorsCount;
   }
 
   List get cells => _cells;
diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart
index 5127b151c81c215dc479ac1c434f8dade3a9233c..21a892224ce09b1e72596c4878e0ed02c30959fd 100644
--- a/lib/utils/board_utils.dart
+++ b/lib/utils/board_utils.dart
@@ -6,7 +6,7 @@ import '../provider/data.dart';
 class BoardUtils {
 
   static printGrid(List cells) {
-    String stringValues = '01234567';
+    String stringValues = '012345678';
     print('');
     print('-------');
     for (var rowIndex = 0; rowIndex < cells.length; rowIndex++) {
diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart
index a7005ece43ead123009791c0eb6478cc1e93dd16..b9eb78000c006e3be0afca72526db1a012784e29 100644
--- a/lib/utils/game_utils.dart
+++ b/lib/utils/game_utils.dart
@@ -9,7 +9,7 @@ class GameUtils {
 
   static Future<void> startGame(Data myProvider) async {
     print('Starting game');
-    print('- level: ' + myProvider.level);
+    print('- level: ' + myProvider.parameterLevel);
     print('- size: ' + myProvider.boardSize.toString());
     print('- colors: ' + myProvider.colorsCount.toString());