diff --git a/src/Form/UserNameValidationConfig.php b/src/Form/UserNameValidationConfig.php
index 3355eb6..7d97d0b 100644
--- a/src/Form/UserNameValidationConfig.php
+++ b/src/Form/UserNameValidationConfig.php
@@ -33,32 +33,77 @@ class UserNameValidationConfig extends ConfigFormBase {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $config = $this->config('user_name_validation.usernamevalidationconfig');
-    $form['username_characters'] = [
+    $default_min_char = $config->get('min_char');
+    $default_max_char = $config->get('max_char');
+    $default_ajax_validation = $config->get('ajax_validation');
+    $default_user_label = $config->get('user_label');
+    $default_user_desc = $config->get('user_desc');
+
+    $form['username_validation_rule'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Username condition'),
+      '#collapsible' => FAlSE,
+      '#collapsed' => FALSE,
+      '#tree' => TRUE,
+    );
+    $form['username_validation_config'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Username Configuration'),
+      '#collapsible' => FALSE,
+      '#collapsed' => FALSE,
+      '#tree' => TRUE,
+    );
+    $form['username_validation_rule']['blacklist_char'] = array(
       '#type' => 'textarea',
-      '#title' => $this->t('Text area to hold - blocking words, special allowed characters '),
-      // '#description' => $this->t('Text area to hold - blocking words, special allowed characters'),
-      '#default_value' => $config->get('username_characters'),
-    ];
-    $form['username_ajax_validation'] = [
+      '#default_value' => $config->get('blacklist_char'),
+      '#title' => t('Blacklist Characters/Words'),
+      '#description' => '<p>' . t("Comma separated characters or words to avoided while saving username. Ex: !,@,#,$,%,^,&,*,(,),1,2,3,4,5,6,7,8,9,0,have,has,were,aren't.") . '</p>' . '<p>' . t('If any of the blacklisted characters/words found in username ,would return validation error on user save.') . '</p>',
+    );
+    $form['username_validation_rule']['min_char'] = array(
+      '#type' => 'textfield',
+      '#title' => t("Minimum characters"),
+      '#required' => TRUE,
+      '#description' => t("Minimum number of characters username should contain"),
+      '#size' => 12,
+      '#maxlength' => 3,
+      '#default_value' => isset($default_min_char) ? $default_min_char : '1',
+    );
+    $form['username_validation_rule']['max_char'] = array(
+      '#type' => 'textfield',
+      '#title' => t("Maximum characters"),
+      '#required' => TRUE,
+      '#description' => t("Maximum number of characters username should contain"),
+      '#size' => 12,
+      '#maxlength' => 3,
+      '#default_value' => isset($default_max_char) ? $default_max_char : '255',
+    );
+
+    $form['username_validation_rule']['ajax_validation'] = array(
       '#type' => 'checkbox',
-      '#title' => $this->t('Username Ajax Validation'),
-      '#description' => $this->t('Check box - Enable/Disable ajax validation'),
-      '#default_value' => $config->get('username_ajax_validation'),
-    ];
-    $form['validation_message'] = [
+      '#title' => t('Enable Ajax Validation'),
+      '#default_value' => isset($default_ajax_validation) ? $default_ajax_validation : '',
+    );
+    $form['username_validation_config']['user_label'] = array(
       '#type' => 'textfield',
-      '#title' => $this->t('Validation Message'),
-      '#maxlength' => 64,
-      '#size' => 64,
-      '#default_value' => $config->get('validation_message'),
-    ];
-    $form['ajax_validation_message'] = [
+      '#title' => t("Username Label"),
+      '#description' => t("This value will display instead of username in the registration form"),
+      '#size' => 55,
+      '#maxlength' => 55,
+      '#default_value' => isset($default_user_label) ? $default_user_label : '',
+    );
+
+    $form['username_validation_config']['user_desc'] = array(
       '#type' => 'textfield',
-      '#title' => $this->t('Ajax Validation Message'),
-      '#maxlength' => 64,
-      '#size' => 64,
-      '#default_value' => $config->get('ajax_validation_message'),
-    ];
+      '#title' => t("Username description"),
+      '#description' => t("This value will display as username description"),
+      '#size' => 55,
+      '#maxlength' => 55,
+      '#default_value' => isset($default_user_desc) ? $default_user_desc : '',
+    );
+
+    $form['#validate'][] = '_username_validation_admin_form_validate';
+
+
     return parent::buildForm($form, $form_state);
   }
 
@@ -74,13 +119,13 @@ class UserNameValidationConfig extends ConfigFormBase {
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
     parent::submitForm($form, $form_state);
-
     $this->config('user_name_validation.usernamevalidationconfig')
-      ->set('username_characters', $form_state->getValue('username_characters'))
-      ->set('username_ajax_validation', $form_state->getValue('username_ajax_validation'))
-      ->set('validation_message', $form_state->getValue('validation_message'))
-      ->set('ajax_validation_message', $form_state->getValue('ajax_validation_message'))
-      ->save();
+        ->set('blacklist_char', $form_state->getValue('username_validation_rule')[blacklist_char])
+        ->set('min_char', $form_state->getValue('username_validation_rule')['min_char'])
+        ->set('max_char', $form_state->getValue('username_validation_rule')['max_char'])
+        ->set('ajax_validation', $form_state->getValue('username_validation_rule')['ajax_validation'])
+        ->set('user_label', $form_state->getValue('username_validation_config')['user_label'])
+        ->set('user_desc', $form_state->getValue('username_validation_config')['user_desc'])
+        ->save();
   }
-
 }
