diff --git a/field_permissions.info.yml b/field_permissions.info.yml
index 26b7d22..340c7c7 100644
--- a/field_permissions.info.yml
+++ b/field_permissions.info.yml
@@ -2,6 +2,7 @@ name: Field Permissions
 type: module
 hidden: false
 description: 'Set field-level permissions to create, update or view fields.'
+configure: field_permissions.reports
 package: field
 version: 8.x-1.x-dev
 core: '8.x'
diff --git a/field_permissions.links.menu.yml b/field_permissions.links.menu.yml
new file mode 100644
index 0000000..49d051e
--- /dev/null
+++ b/field_permissions.links.menu.yml
@@ -0,0 +1,5 @@
+field_permissions.reports:
+  title: 'Report all field permissions'
+  parent: system.admin_structure
+  description: 'Report all permissions set.'
+  route_name: field_permissions.reports
diff --git a/field_permissions.links.task.yml b/field_permissions.links.task.yml
index 38be938..d9ba4df 100644
--- a/field_permissions.links.task.yml
+++ b/field_permissions.links.task.yml
@@ -1,4 +1,4 @@
-field_permissions_admin:
-  route_name: field_permissions_admin
+field_permissions.reports:
+  route_name: field_permissions.reports
   base_route: entity.field_storage_config.collection
   title: Permissions
diff --git a/field_permissions.module b/field_permissions.module
index 91733da..e4ee1cb 100644
--- a/field_permissions.module
+++ b/field_permissions.module
@@ -36,12 +36,8 @@ define('FIELD_PERMISSIONS_CUSTOM', 2);
  */
 function field_permissions_help($route_name, RouteMatchInterface $route_match) {
   switch ($route_name) {
-    // Main module help for the test module.
-    case 'help.page.test':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('test') . '</p>';
-      return $output;
+    case 'help.page.field_permissions':
+      return '<p>' . t('Set field-level permissions to edit or view fields in any node, edit field during node creation, and edit or view permissions for nodes owned by the current user.') . '</p>';
 
     default:
   }
@@ -64,8 +60,10 @@ function field_permissions_entity_field_access($operation, FieldDefinitionInterf
 
 /**
  * Implements hook_form_alter().
+ *
+ * @see field_permissions_permissions_matrix()
  */
-function field_permissions_form_field_config_edit_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
+function field_permissions_form_field_config_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) {
   $account = \Drupal::currentUser();
   if (!FieldPermissionsService::GetAccessAdminFieldPermissions($account)) {
     return $form;
@@ -97,10 +95,10 @@ function field_permissions_form_field_config_edit_form_alter(&$form, \Drupal\Cor
 /**
  * Return Matrix field permission.
  *
- * @param Drupal\field\Entity\FieldStorageConfig $field
+ * @param FieldStorageConfig $field
  *   Field to implement permissions.
  */
-function field_permissions_permissions_matrix($field, &$form, \Drupal\Core\Form\FormStateInterface $form_state) {
+function field_permissions_permissions_matrix($field, &$form, FormStateInterface $form_state) {
   $roles = user_roles();
   $role_names = array_keys($roles);
   $form['role_names'] = array(
diff --git a/field_permissions.routing.yml b/field_permissions.routing.yml
index f85b276..86a0f60 100644
--- a/field_permissions.routing.yml
+++ b/field_permissions.routing.yml
@@ -1,4 +1,4 @@
-field_permissions_admin:
+field_permissions.reports:
   path: 'admin/reports/fields/permissions'
   defaults:
     _controller: '\Drupal\field_permissions\Controller\FieldPermissionsController::content'
diff --git a/src/Controller/FieldPermissionsController.php b/src/Controller/FieldPermissionsController.php
index eb7dae6..e48c988 100644
--- a/src/Controller/FieldPermissionsController.php
+++ b/src/Controller/FieldPermissionsController.php
@@ -11,14 +11,19 @@ use \Drupal\field\Entity\FieldStorageConfig;
 use Drupal\field_permissions\FieldPermissionsService;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
+
+/**
+ * Define FieldPermissionsController.
+ */
 class FieldPermissionsController extends ControllerBase {
 
   protected $fieldPermissions;
 
   /**
-   * Boh boh.
+   * Costructor.
    *
-   * @param FieldPermissionsService $field_permissions_service.
+   * @param FieldPermissionsService $field_permissions_service
+   *   Field permissions services.
    */
   public function __construct(FieldPermissionsService $field_permissions_service) {
     $this->fieldPermissions = $field_permissions_service;
@@ -37,12 +42,11 @@ class FieldPermissionsController extends ControllerBase {
   }
 
   /**
-   * {@inheritdoc}
+   * Content to page report all field permissions settings.
+   *
+   * Build table to Path: 'admin/reports/fields/permissions'.
    */
   public function content() {
-    ///dpm(\Drupal::moduleHandler()->getImplementations('entity_base_field_info'));
-    // dpm($field_info = \Drupal::moduleHandler()->invoke("path", 'entity_base_field_info'));
-    //dpm(\Drupal::moduleHandler()->implementsHook('form', 'alter'));
     $build['table'] = array(
       '#type' => 'table',
       '#header' => $this->buildHeader(),
@@ -53,7 +57,7 @@ class FieldPermissionsController extends ControllerBase {
   }
 
   /**
-   * {@inheritdoc}
+   * Builed header tabel to content.
    */
   public function buildHeader() {
     $headers = array(
@@ -77,14 +81,13 @@ class FieldPermissionsController extends ControllerBase {
   }
 
   /**
-   * {@inheritdoc}
+   * Builed Row tabel to content.
+   *
+   * @var $instance \Drupal\field\Entity\FieldStorageConfig
    */
   protected function buildRows() {
     $instances = \Drupal::entityTypeManager()->getStorage('field_storage_config')->loadMultiple();
     $rows = [];
-    /*
-     * @var $instance \Drupal\field\Entity\FieldStorageConfig
-     */
     foreach ($instances as $key => $instance) {
       $rows[] = $this->buildRow($instance);
     }
@@ -92,10 +95,13 @@ class FieldPermissionsController extends ControllerBase {
   }
 
   /**
-   * XXXXX.
-   * @param \Drupal\field\Entity\FieldStorageConfig $field_storage.
+   * Build single row to content.
+   *
+   * @param \Drupal\field\Entity\FieldStorageConfig $field_storage
+   *  Field to populate row.
+   *
    * @return array
-   *   xxx
+   *   Build row.
    */
   protected function buildRow(FieldStorageConfig $field_storage) {
     $row = [];
diff --git a/src/FieldPermissionsService.php b/src/FieldPermissionsService.php
index 6c94145..365e51f 100644
--- a/src/FieldPermissionsService.php
+++ b/src/FieldPermissionsService.php
@@ -7,6 +7,9 @@
 
 namespace Drupal\field_permissions;
 
+/**
+ * Implemenst FieldPermissionsServiceInterfaces.
+ */
 class FieldPermissionsService implements FieldPermissionsServiceInterface {
 
   /**
@@ -43,8 +46,17 @@ class FieldPermissionsService implements FieldPermissionsServiceInterface {
   }
 
   /**
-   * {@inheritdoc}
-   * FieldStorageConfigInterface
+   * GetPermissions width title and description key of array the name of perm.
+   *
+   * @param FieldStorageConfigInterface $field
+   *   The field to return permissions for.
+   * @param string $label
+   *   Param to pass FieldPermissionsService::getList($label).
+   *
+   * @see FieldPermissionsService::getList($label)
+   *
+   * @return array
+   *   Return arry for permission ti singol field.
    */
   public static function listFieldPermissionSupport($field, $label = '') {
     $permissions = array();
@@ -60,9 +72,9 @@ class FieldPermissionsService implements FieldPermissionsServiceInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Get All permission Value for all field and all roles.
    */
-  public static function getPermissionValue(/*FieldStorageConfigInterface $field*/) {
+  public static function getPermissionValue() {
     $roules = user_roles();
     $field_field_permissions = [];
     $field_permission_perm = FieldPermissionsService::permissions();
@@ -88,25 +100,38 @@ class FieldPermissionsService implements FieldPermissionsServiceInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Get implemets permissions invoke in field_permissions.permissions.yml.
+   *
+   * @return array
+   *  Add custom permissions.
    */
   public static function permissions() {
     $permissions = [];
     $instances = \Drupal::entityTypeManager()->getStorage('field_storage_config')->loadMultiple();
     foreach ($instances as $key => $instance) {
       $field_name = $instance->getName();
-      $permission_list = FieldPermissionsService::getList($field_name);
-      $perms_name = array_keys($permission_list);
-      foreach ($perms_name as $perm_name) {
-        $name = str_replace(' ', '_', $perm_name) . '_' . $field_name;
-        $permissions[$name] = $permission_list[$perm_name];
+      // Check if permissionType is not default, before creating permissions.
+      $type = FieldPermissionsService::fieldGetPermissionType($instance);
+      if ($type <> FIELD_PERMISSIONS_PUBLIC) {
+        $permission_list = FieldPermissionsService::getList($field_name);
+        $perms_name = array_keys($permission_list);
+        foreach ($perms_name as $perm_name) {
+          $name = str_replace(' ', '_', $perm_name) . '_' . $field_name;
+          $permissions[$name] = $permission_list[$perm_name];
+        }
       }
     }
     return $permissions;
   }
 
   /**
-   * {@inheritdoc}
+   * Get permission type for single field.
+   *
+   * @param FieldStorageConfigInterface $field
+   *    Field to get permissions.
+   *
+   * @return int
+   *   return PUBLIC || PRIVATE || CUSTOM
    */
   public static function fieldGetPermissionType($field) {
     $config = \Drupal::service('config.factory')->getEditable('field_permissions.settings');
@@ -115,22 +140,42 @@ class FieldPermissionsService implements FieldPermissionsServiceInterface {
   }
 
   /**
-   * {@inheritdoc}
-   *  AccountInterface
+   * Return permissions to garenat access to admin field perm.
+   *
+   * @param AccountInterface $account
+   *   User to garant permissions.
+   *
+   * @return bool
+   *   Garant or negate access.
    */
   public static function GetAccessAdminFieldPermissions($account) {
     return $account->hasPermission("admin_field_permissions");
   }
 
   /**
-   * {@inheritdoc}
-   *  AccountInterface.
+   * Return permissions to garenat access to private field.
+   *
+   * @param AccountInterface $account
+   *   User to garant permissions.
+   *
+   * @return bool
+   *   Garant or negate access.
    */
   public static function GetAccessPrivateFieldPermissions($account) {
     return $account->hasPermission("access_user_private_field");
   }
+
   /**
-   * {@inheritdoc}
+   * Return access to field on itemes and opertations.
+   *
+   * @param string $operation
+   *    String operation on field.
+   * @param Entity $items
+   *   Entity cotain fields.
+   * @param AccountInterface $account
+   *    Account to get permissions.
+   * @param FieldDefinitionInterface $field_definition
+   *   Fields to get permissions.
    */
   public static function getFieldAccess($operation, $items, $account, $field_definition) {
     $default_type = FieldPermissionsService::fieldGetPermissionType($field_definition);
diff --git a/src/FieldPermissionsServiceInterface.php b/src/FieldPermissionsServiceInterface.php
index e6ab3fd..145da29 100644
--- a/src/FieldPermissionsServiceInterface.php
+++ b/src/FieldPermissionsServiceInterface.php
@@ -7,7 +7,9 @@
 
 namespace Drupal\field_permissions;
 
-
+/**
+ * Implement FieldPermission Interface.
+ */
 interface FieldPermissionsServiceInterface {
 
   /**
@@ -32,15 +34,12 @@ interface FieldPermissionsServiceInterface {
   public static function listFieldPermissionSupport($field, $label = '');
 
   /**
-   * Get default value for checkbox  role permission.
-   *
-   * @param \Drupal\field\FieldStorageConfigInterface $field
-   *   The field to return permissions for.
+   * Get default value for checkbox role permission.
    */
- public static function getPermissionValue(/*FieldStorageConfigInterface $field*/);
+  public static function getPermissionValue();
 
   /**
-   * Returns permissions.
+   * Returns permissions implements in field_permissions.
    */
   public static function permissions();
 
@@ -53,7 +52,16 @@ interface FieldPermissionsServiceInterface {
   public static function fieldGetPermissionType($field);
 
   /**
-   * {@inheritdoc}
+   * Get access for field by operations and account permisisons.
+   *
+   * @param string $operation
+   *    String operation on field.
+   * @param Entity $items
+   *   Entity cotain fields.
+   * @param AccountInterface $account
+   *    Account to get permissions.
+   * @param FieldDefinitionInterface $field_definition
+   *   Fields to get permissions.
    */
   public static function getFieldAccess($operation, $items, $account, $field_definition);
 
