WIP.
diff --git a/api-review.html b/api-review.html
index 4043395..8134bc4 100644
--- a/api-review.html
+++ b/api-review.html
@@ -26,33 +26,30 @@
         <h2 class="section-title">Library API review <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
 
         <p>
-            NlpCraft library contains two base concepts: <code>Model</code> and <code>Client</code> which have API representations
+            NlpCraft library is based on two main base concepts <code>Model</code> and <code>Client</code>
+            which have API representations
             <a href="apis/latest/org/apache/nlpcraft/NCModel.html">NCModel</a> and
             <a href="apis/latest/org/apache/nlpcraft/NCModelClient.html">NCModelClient</a>.
-            When you work with the system - you should prepare model configuring its parameters and defining its components.
+            When you work with the system you should prepare model by configuring its parameters and defining its components.
             After you just communicate with this model via client's methods.
         </p>
 
         <ul>
             <li>
                 <code>Model</code> is domain specific object which responsible for user input interpretation.
-                <code>Model</code> contains intents, defined via NlpCraft IDL with related code callbacks.
-                Intent is user defined callback and rule, according to which this callback should be called.
-                Rule is most often some template, based on expected set of entities in user input, but it can be more flexible.
             </li>
-
             <li>
-                <code>Client</code> is object, which allows to communicate with the given model.
+                <code>Client</code> is object which allows to communicate with the given model.
             </li>
         </ul>
 
         <p>Typical part of code:</p>
 
         <pre class="brush: scala, highlight: []">
-              // Prepares domain model.
+              // Initialized prepared domain model.
               val mdl = new CustomNlpModel()
 
-              // Prepares client for given model.
+              // Creates client for given model.
               val client = new NCModelClient(mdl)
 
               // Sends text request to model by user ID "userId".
@@ -62,24 +59,12 @@
               client.clearDialog("userId")
         </pre>
 
-        <p>
-            <code>Model</code> definition includes two parts:
-        </p>
-        <ul>
-            <li>
-                <code>Configuration</code>. Static configuration parameters including name, version, etc.
-            </li>
-            <li>
-                <code>Pipeline</code>. Most important component, which defines user input processing chain.
-                <code>Pipeline</code> can be based on standard and custom user defined components.
-            </li>
-        </ul>
     </section>
 
     <section id="model">
-        <h2 class="section-title">Model overview<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+        <h2 class="section-title">Model responsibility overview<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
         <p>
-            Let's start with terminology and describe work workflow.
+            Let's start with terminology and describe the system work workflow.
         </p>
 
         <ul>
@@ -87,27 +72,38 @@
                 <code>Token</code> represented as <a  href="apis/latest/org/apache/nlpcraft/NCToken.html">NCToken</a>.
                 It is simple string, part of user input, which split according to some rules,
                 for instance by spaces and some additional conditions, which depends on language and some expectations.
-                So user input "<b>Where is it?</b>" contains four tokens: "<b>Where</b>", "<b>is</b>", "<b>it</b>", "<b>?</b>".
-                Usually <code>tokens</code>are words and punctuation symbols which can also contain some additional
+                So user input "<b>Where is it?</b>" contains four tokens:
+                "<code>Where</code>", "<code>is</code>", "<code>it</code>", "<code>?</code>".
+                Usually <code>tokens</code> are words and punctuation symbols which can also contain some additional
                 information like point of speech etc.
-                Tokens data are input for searching <code>entities</code>.
+                <code>Tokens</code> are input for searching the <code>entities</code>.
             </li>
             <li>
                 <code>Entity</code> represented as <a  href="apis/latest/org/apache/nlpcraft/NCEntity.html">NCEntity</a>.
                 According to wikipedia, named entity is a real-world object, such as a person, location, organization,
                 product, etc., that can be denoted with a proper name. It can be abstract or have a physical existence.
-                Each entity can contain one or more tokens.
-                Entities data are input for searching <a href="intent-matching.html">Intent matching</a> conditions.
+                Each <code>entity</code> can contain one or more tokens.
+                <code>Entities</code> are input for searching <code>intents</code> according to <a href="intent-matching.html">Intent matching</a> conditions.
             </li>
             <li>
                 <code>Variant</code> represented as <a  href="apis/latest/org/apache/nlpcraft/NCVariant.html">NCVariant</a>.
-                List of entities. Potentially, each token can be recognized as different entities,
-                so user input can be processed as set of variants.
-                For example user input "Mercedes" can be processed as 2 variants,
-                both of them contains single element list of entities: car brand or Spanish family name.
+                It is a list of <code>entities</code>. Potentially, each <code>token</code> can be recognized as
+                different <code>entities</code>,
+                so user input can be processed as set of <code>variants</code>.
+                For example user input "Mercedes" can be processed as two <code>variants</code>,
+                both of them contains single element list of <code>entities</code>: <b>car brand</b> or <b>Spanish female name</b>.
                 When words are not overlapped with different <code>entities</code> there is only one
                 <code>variant</code> detected.
             </li>
+            <li>
+                <code>Intent</code> is user defined callback and rule, according to which this callback should be called.
+                Rule is most often some template, based on expected set of <code>entities</code> in user input,
+                but it can be more flexible.
+                Parameters extracted from user text input are passed into callback methods.
+                These methods execution results are provided to user as answer on his request.
+                <code>Intent</code> callbacks are methods defined in <code>Model</code> class annotated by
+                <code>intent</code> rules via <a href="intent-matching.html">IDL</a>.
+            </li>
         </ul>
 
         <p>
@@ -117,71 +113,72 @@
         <ul>
             <li>
                 Parse user input text as the <code>tokens</code>.
-                They are input for searching <code>name entities</code>.
-                Tokens parsing components should be included into <a href="#model-pipeline">Model pipeline</a>.
+                They are input for searching <code>named entities</code>.
+                <code>Tokens</code> parsing components should be included into <a href="#model-pipeline">Model pipeline</a>.
             </li>
             <li>
-                Find <code>name entities</code> based on these parsed tokens.
-                <code>name entities</code>.
+                Find <code>named entities</code> based on these parsed <code>tokens</code>.
                 They are input for searching <code>intents</code>.
-                Entity parsing components should be included into <a href="#model-pipeline">Model pipeline</a>.
+                <code>Entity</code> parsing components should be included into <a href="#model-pipeline">Model pipeline</a>.
             </li>
             <li>
-                Prepare callback methods which contain business logic
-                and rules for matching user requests on them.
-                These callbacks with their rules and named as <code>intents</code>.
-                These matched callback methods execution with parameters extracted from user text input and
-                these execution results returned to user as answer on his request.
-                These callbacks methods should be defined in the model or model should have reference in them.
+                Prepare <code>intents</code> with their callbacks methods which contain business logic.
+                These methods should be defined directly in the model class definition or the model should have references on them.
                 It will be described below.
             </li>
         </ul>
 
         <p>
-            Let's prepare the system which can call persons from your contact list.
-            Typical commands are: "Please call to John Smith" or "Connect me with Barbara Dillan".
-            This model should be able to recognize in user text following entities:
+            As example, let's prepare the system which can call persons from your contact list.
+            Typical commands are: "<b>Please call to John Smith</b>" or "<b>Connect me with Barbara Dillan</b>".
+            For solving this task this model should be able to recognize in user text following entities:
             <code>command</code> and <code>person</code> to apply this command.
         </p>
 
+        <p>
+            So, when request "<b>Please call to John Smith</b>" received, our model should be able to:
+        </p>
+
         <ul>
             <li>
-                Parsing split your input on tokens ["<code>please</code>", "<code>call</code>", "<code>to</code>", "<code>john</code>", "<code>smith</code>"]
+                Parse tokens splitting user text input:
+                "<code>please</code>", "<code>call</code>", "<code>to</code>", "<code>john</code>", "<code>smith</code>".
             </li>
             <li>
-                By these tokens model should be able to found two named entities:
+                Find two named entities:
                 <ul>
                     <li>
-                        <code>command</code> by token <code>call</code>.
+                        <code>command</code> by token "<code>call</code>".
                     </li>
                     <li>
-                        <code>person</code> by tokens <code>john</code> and <code>smith</code>.
+                        <code>person</code> by tokens "<code>john</code>" and "<code>smith</code>".
                     </li>
                 </ul>
             </li>
             <li>
-                Also intents should be prepared:
+                Have prepared intent:
                 <pre class="brush: scala, highlight: [1, 2, 5, 6]">
                     @NCIntent("intent=call term(command)={# == command'} term(person)={# == 'person'}")
-                    def onMatch(
+                    def onCommand(
                         ctx: NCContext,
                         im: NCIntentMatch,
                         @NCIntentTerm("command") command: NCEntity,
                         @NCIntentTerm("person") person: NCEntity
-                    ): NCResult = ...
+                    ): NCResult = ? // Implement business logic here.
                 </pre>
 
                 <ul>
                     <li>
-                        <code>Line 1</code> defines intent <code>ls</code> with two conditions.
+                        <code>Line 1</code> defines intent <code>call</code> with two conditions.
                     </li>
                     <li>
-                        <code>Line 2</code> defines related callback method.
+                        <code>Line 2</code> defines related callback method <code>onCommand()</code>.
                     </li>
                     <li>
                         <code>Lines 4 and 5</code> define two callback method's arguments which are corresponded to
-                        <code>call</code> intent conditions. You can extract normalized value
-                        <code>john smith</code> from the <code>person</code> parameter and use in the method body.
+                        <code>call</code> intent terms conditions. You can extract normalized value
+                        <code>john smith</code> from the <code>person</code> parameter and use it in the method body
+                        for getting his phone number etc.
                     </li>
                 </ul>
 
@@ -196,11 +193,13 @@
     </section>
 
     <section id="client">
-        <h2 class="section-title">Client overview<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+        <h2 class="section-title">Client responsibility overview<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
 
         <p>
-            Base client methods:
+            Client which is represented as <a href="apis/latest/org/apache/nlpcraft/NCModelClient.html">NCModelClient</a>
+            is necessary for communication with the model. Base client methods  are described below.
         </p>
+
         <ul>
             <li>
                 <code>ask()</code> passes user text input to the model and receives back execution
@@ -233,8 +232,8 @@
         <h2 class="section-title">Model configuration <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
 
         <p>
-            <code>Model configuration</code> which is represented as is set of model parameter values.
-            Its API representation is <a href="apis/latest/org/apache/nlpcraft/NCModelConfig.html">NCModelConfig</a>.
+            Model configuration <a href="apis/latest/org/apache/nlpcraft/NCModelConfig.html">NCModelConfig</a> represents set of model parameter values.
+            Its properties are described below.
         </p>
         <ul>
             <li>
@@ -364,8 +363,8 @@
     <ul class="side-nav">
         <li class="side-nav-title">On This Page</li>
         <li><a href="#overview">Overview</a></li>
-        <li><a href="#model">Model overview</a></li>
-        <li><a href="#client">Client overview</a></li>
+        <li><a href="#model">Model responsibility overview</a></li>
+        <li><a href="#client">Client responsibility overview</a></li>
         <li><a href="#model-configuration">Model configuration</a></li>
         <li><a href="#model-pipeline">Model pipeline</a></li>
         <li><a href="#model-behavior">Model behavior overriding</a></li>
diff --git a/built-components.html b/built-components.html
index c876535..4e8b991 100644
--- a/built-components.html
+++ b/built-components.html
@@ -26,8 +26,9 @@
         <h2 class="section-title">Built components <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
 
         <p>
-            Model <a href="apis/latest/org/apache/nlpcraft/NCPipeline.html">NCPipeline</a> is base component which responsible for sentence processing.
-            It is consists of a number of traits, some built implementations of them are described below.
+            Model <a href="apis/latest/org/apache/nlpcraft/NCPipeline.html">NCPipeline</a>
+            is base model element. It defines chain of components traits which are responsible for sentence processing.
+            Some built implementations of these traits are described below.
         </p>
 
         <div class="bq info">
@@ -120,9 +121,12 @@
                         Look at the supported <b>Name Finder</b> models <a href="https://opennlp.sourceforge.net/models-1.5/">here</a>.
                         For example for English language are accessible: <code>Location</code>, <code>Money</code>,
                         <code>Person</code>, <code>Organization</code>, <code>Date</code>, <code>Time</code> and <code>Percentage</code>.
+                        There are also accessible dome models for another languages.
                     </li>
                     <li>
                         <code>NCStanfordNLPEntityParser</code> is wrapper on <a href="https://nlp.stanford.edu/">Stanford NLP</a> NER components.
+                        For example for English language are accessible: <code>Location</code>, <code>Money</code>,
+                        <code>Person</code>, <code>Organization</code>, <code>Date</code>, <code>Time</code> and <code>Percent</code>.
                         Look at the detailed information <a href="https://nlp.stanford.edu/software/CRF-NER.shtml">here</a>.
                     </li>
                     <li>
diff --git a/custom-components.html b/custom-components.html
index 529acbd..51c6f67 100644
--- a/custom-components.html
+++ b/custom-components.html
@@ -27,14 +27,15 @@
 
         <p>
             NlpCraft provides a numeric of useful built components for English language.
-            You can use them to prepare <code>Pipeline</code> for your <code>Model</code>.
+            You can use them to prepare <a href="apis/latest/org/apache/nlpcraft/NCPipeline.html">NCPipeline</a>
+            for your <a href="apis/latest/org/apache/nlpcraft/NCModel.html">NCModel</a>.
             You also can use provided wrappers on <a href="https://opennlp.apache.org/">Apache OpenNLP</a> and
             <a href="https://nlp.stanford.edu/">Stanford NLP</a> projects NER components.
             Their models work with English and some another languages.
         </p>
         <p>
             But you can need to extend provided functionality and develop your own components.
-            Let's review these components step by step.
+            Let's look how to do it and when it can be useful for all kind of components step by step.
         </p>
     </section>
     <section id="token-parser">
diff --git a/semantic.html b/semantic.html
index c53cdf6..bc2e186 100644
--- a/semantic.html
+++ b/semantic.html
@@ -26,8 +26,10 @@
         <h2 class="section-title">Semantic parser<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
 
         <p>
-            Semantic entity parser <a href="apis/latest/org/apache/nlpcraft/nlp/parsers/NCSemanticEntityParser.html">NCSemanticEntityParser</a>
-            is the implementation of <a href="apis/latest/org/apache/nlpcraft/NCEntityParser.html">NCEntityParser</a>.
+            Semantic entity parser
+            <a href="apis/latest/org/apache/nlpcraft/nlp/parsers/NCSemanticEntityParser.html">NCSemanticEntityParser</a>
+            is the implementation of <a href="apis/latest/org/apache/nlpcraft/NCEntityParser.html">NCEntityParser</a>,
+            which in turn is component of the model pipeline <a href="apis/latest/org/apache/nlpcraft/NCPipeline.html">NCPipeline</a>.
             In spite of that it is just one of defined in NlpCraft built component, it deserves a special mention.
             This parser provides simple but very powerful way to find domain specific data in the input text.
             It defines list of <a href="apis/latest/org/apache/nlpcraft/nlp/parsers/NCSemanticElement.html">NCSemanticElement</a>