diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCElement.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCElement.java
index d80ef61..9f5872a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCElement.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCElement.java
@@ -37,8 +37,8 @@
     /**
      * Gets unique ID of this element.
      * <p>
-     * This unique ID should be human readable for simpler debugging and testing of the model.
-     * Although element ID could be any arbitrary string it is highly recommended to have
+     * This unique ID should be human-readable for simpler debugging and testing of the model.
+     * Although element ID could be any arbitrary string it is highly recommended having
      * element ID as a lower case string starting with some model prefix, followed by colon and
      * then the element's name. For example, some built-in NLPCraft IDs are: <code>nlpcraft:date</code>,
      * <code>nlpcraft:city</code>.
@@ -75,13 +75,13 @@
     String getId();
 
     /**
-     * Gets the list of groups this elements belongs to.
+     * Gets the list of groups this element belongs to.
      * <p>
      * Model element can belong to one or more groups. By default, the element belongs to a single group whose group
      * ID is equal to its {@link #getId() ID}. The proper grouping of the model elements is required for operation
      * of Short-Term-Memory (STM) in {@link NCConversation conversation} (if and when conversation
      * is used). Specifically, a token (i.e. found model element) that is part of the group set will override
-     * other tokens from the same set or a its superset. In other words, tokens with a smaller group set
+     * other tokens from the same set or its superset. In other words, tokens with a smaller group set
      * (more specific token) will override the tokens from a larger group set (more generic tokens).
      * <p>
      * Note that built-in tokens (including from 3rd party token providers) belong to a single group whose group
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelView.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelView.java
index b7243e3..c213098 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelView.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelView.java
@@ -34,112 +34,112 @@
  */
 public interface NCModelView extends NCMetadata {
     /**
-     * Min value for {@link #getConversationTimeout()} method.
+     * Minimum value for {@link #getConversationTimeout()} method.
      */
     long CONV_TIMEOUT_MIN = 0L;
 
     /**
-     * Max value for {@link #getConversationTimeout()} method.
+     * Maximum value for {@link #getConversationTimeout()} method.
      */
     long CONV_TIMEOUT_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMaxUnknownWords()} method.
+     * Minimum value for {@link #getMaxUnknownWords()} method.
      */
     long MAX_UNKNOWN_WORDS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMaxUnknownWords()} method.
+     * Maximum value for {@link #getMaxUnknownWords()} method.
      */
     long MAX_UNKNOWN_WORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMaxFreeWords()} method.
+     * Minimum value for {@link #getMaxFreeWords()} method.
      */
     long MAX_FREE_WORDS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMaxFreeWords()} method.
+     * Maximum value for {@link #getMaxFreeWords()} method.
      */
     long MAX_FREE_WORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMaxSuspiciousWords()} method.
+     * Minimum value for {@link #getMaxSuspiciousWords()} method.
      */
     long MAX_SUSPICIOUS_WORDS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMaxSuspiciousWords()} method.
+     * Maximum value for {@link #getMaxSuspiciousWords()} method.
      */
     long MAX_SUSPICIOUS_WORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMinWords()} method.
+     * Minimum value for {@link #getMinWords()} method.
      */
     long MIN_WORDS_MIN = 1L;
 
     /**
-     * Max value for {@link #getMinWords()} method.
+     * Maximum value for {@link #getMinWords()} method.
      */
     long MIN_WORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMinNonStopwords()} method.
+     * Minimum value for {@link #getMinNonStopwords()} method.
      */
     long MIN_NON_STOPWORDS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMinNonStopwords()} method.
+     * Maximum value for {@link #getMinNonStopwords()} method.
      */
     long MIN_NON_STOPWORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMinTokens()} method.
+     * Minimum value for {@link #getMinTokens()} method.
      */
     long MIN_TOKENS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMinTokens()} method.
+     * Maximum value for {@link #getMinTokens()} method.
      */
     long MIN_TOKENS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMaxTokens()} method.
+     * Minimum value for {@link #getMaxTokens()} method.
      */
     long MAX_TOKENS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMaxTokens()} method.
+     * Maximum value for {@link #getMaxTokens()} method.
      */
     long MAX_TOKENS_MAX = 100L;
 
     /**
-     * Min value for {@link #getMaxWords()} method.
+     * Minimum value for {@link #getMaxWords()} method.
      */
     long MAX_WORDS_MIN = 1L;
 
     /**
-     * Max value for {@link #getMaxWords()} method.
+     * Maximum value for {@link #getMaxWords()} method.
      */
     long MAX_WORDS_MAX = 100L;
 
     /**
-     * Min value for {@link #getMaxElementSynonyms()} method.
+     * Minimum value for {@link #getMaxElementSynonyms()} method.
      */
     long MAX_SYN_MIN = 1L;
 
     /**
-     * Max value for {@link #getMaxElementSynonyms()} method.
+     * Maximum value for {@link #getMaxElementSynonyms()} method.
      */
     long MAX_SYN_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getConversationDepth()} method.
+     * Minimum value for {@link #getConversationDepth()} method.
      */
     long CONV_DEPTH_MIN = 1L;
 
     /**
-     * Max value for {@link #getConversationDepth()} method.
+     * Maximum value for {@link #getConversationDepth()} method.
      */
     long CONV_DEPTH_MAX = Long.MAX_VALUE;
 
@@ -390,9 +390,9 @@
 
     /**
      * Gets maximum number of unknown words until automatic rejection. An unknown word is a word
-     * that is not part of Princeton WordNet database. If you expect a very formalized and well
-     * defined input without uncommon slang and abbreviations you can set this to a small number
-     * like one or two. However, in most cases we recommend to leave it as default or set it to a larger
+     * that is not part of Princeton WordNet database. If you expect a very formalized and well-defined
+     * input without uncommon slang and abbreviations you can set this to a small number
+     * like one or two. However, in most cases we recommend leaving it as default or set it to a larger
      * number like five or more.
      * <p>
      * <b>Default</b>
@@ -588,7 +588,7 @@
 
     /**
      * Whether to allow non-English language in user input.
-     * Currently, only English language is supported. However, model can choose whether or not
+     * Currently, only English language is supported. However, model can choose whether
      * to automatically reject user input that is detected to be a non-English. Note that current
      * algorithm only works reliably on longer user input (10+ words). On short sentences it will
      * often produce an incorrect result.
@@ -791,7 +791,7 @@
     }
 
     /**
-     * Whether this model elements allows non-stop words gaps in their multi-word synonyms.
+     * Whether this model elements allow non-stop words gaps in their multi-word synonyms.
      * This property is closely related to {@link #isPermutateSynonyms()} which are typically changed together.
      * Note that individual model elements can override this property using {@link NCElement#isSparse()}
      * method.
@@ -987,7 +987,7 @@
      * that will be automatically recognized in the user input. See also {@link NCModel#getParsers()} method on how
      * to provide programmatic named entity recognizer (NER) implementations.
      * <p>
-     * Note that unless model elements are loaded dynamically it is highly recommended to declare model
+     * Note that unless model elements are loaded dynamically it is highly recommended declaring model
      * elements in the external JSON/YAML model configuration (under <code>elements</code> property):
      * <pre class="brush: js">
      * {
@@ -1195,7 +1195,7 @@
      * Gets an optional map of restricted named entity combinations (linkage). Returned map is a map of entity ID to a set
      * of other entity IDs, with each key-value pair defining the restricted combination. Restricting certain entities
      * from being linked (or referenced) by some other entities allows reducing "wasteful" parsing variant
-     * generation. For example, it we know that entity with ID "adjective" cannot be sorted, we can restrict it
+     * generation. For example, if we know that entity with ID "adjective" cannot be sorted, we can restrict it
      * from being linked with <code>nlpcraft:limit</code> and <code>nlpcraft:sort</code> entities to reduce the
      * amount of parsing variants being generated.
      * <p>
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
index d1bb9c5..22e5ada 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
@@ -1510,7 +1510,7 @@
             tbl += (s"${g("Email")}", state.userEmail.get)
             tbl += (s"${g("Access token")}", state.accessToken.get)
 
-            logln(s"Signed in user account:\n$tbl")
+            logln(s"Signed-in user account:\n$tbl")
         }
     }
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliCommands.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliCommands.scala
index bda3ab1..b5a2904 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliCommands.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliCommands.scala
@@ -198,7 +198,7 @@
             synopsis = s"Wrapper for ${y("'/signout'")} REST call in REPL mode.",
             desc = Some(
                 s"See $REST_SPEC_URL for REST call specification. " +
-                s"Signs out currently signed in user. Note that this command makes sense only in REPL mode."
+                s"Signs out currently signed-in user. Note that this command makes sense only in REPL mode."
             ),
             body = NCCli.cmdSignOut,
             examples = Seq(
@@ -206,7 +206,7 @@
                     usage = Seq(
                         s"$PROMPT $SCRIPT_NAME signout"
                     ),
-                    desc = s"Signs out currently signed in user, if any."
+                    desc = s"Signs out currently signed-in user, if any."
                 )
             )
         ),
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
index 8116d07..2bbe409 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
@@ -287,7 +287,7 @@
     /**
       * Checks operation permissions and gets user ID.
       *
-      * @param acsUsr Currently signed in user.
+      * @param acsUsr Currently signed-in user.
       * @param usrIdOpt User ID. Optional.
       * @param usrExtIdOpt User 'on-behalf-of' external ID. Optional.
       */
