WIP.
diff --git a/_data/idl-fns.yml b/_data/idl-fns.yml
index 8cbd4bd..8929289 100644
--- a/_data/idl-fns.yml
+++ b/_data/idl-fns.yml
@@ -20,20 +20,20 @@
 #
 
 fn-ent:
-  - name: ent_id
+  - name: ent_type
     sig: |
-      <b>ent_id</b>(t: Entity<em><sub>opt</sub></em>) ⇒ String, # ⇒ String
-    synopsis: Returns <a href="/apis/latest/org/apache/nlpcraft/NCEntity.html#getId-0">entity ID</a>
+      <b>ent_type</b>(t: Entity<em><sub>opt</sub></em>) ⇒ String, # ⇒ String
+    synopsis: Returns <a href="/apis/latest/org/apache/nlpcraft/NCEntity.html#getType-0">entity type</a>
     desc: |
-      Returns <a href="/apis/latest/org/apache/nlpcraft/NCEntity.html#getId-0">entity ID</a>
+      Returns <a href="/apis/latest/org/apache/nlpcraft/NCEntity.html#getType-0">entity type</a>
       for the current entity (default) or the provided one by the optional parameter <code><b>t</b></code>. Note that this
       functions has a special shorthand <code><b>#</b></code>.
     usage: |
-      // Result: 'true' if the current entity ID is equal to 'my_id'.
-      ent_id == 'my_id'
-      # == 'my_id'
-      ent_id(ent_this) == 'my_id'
-      #(ent_this) == 'my_id'
+      // Result: 'true' if the current entity type is equal to 'my_type'.
+      ent_type == 'my_type'
+      # == 'my_type'
+      ent_type(ent_this) == 'my_type'
+      #(ent_this) == 'my_type'
 
   - name: ent_groups
     sig: |
@@ -42,7 +42,7 @@
     desc: |
       Gets the list of <a class="not-code" href="/apis/latest/org/apache/nlpcraft/NCEntity.html#getGroups-0">groups</a>
       the current entity (default) or the provided one by the optional parameter <code><b>t</b></code> belongs to. Note that,
-      by default, if not specified explicitly, entity always belongs to one group with ID equal to entity ID.
+      by default, if not specified explicitly, entity always belongs to one group with type equal to entity type.
       May return an empty list but never a <code>null</code>.
     usage: |
       // Result: list of groups this entity belongs to.
@@ -106,35 +106,35 @@
       ent_is_last
       ent_is_last(ent_this)
 
-  - name: ent_is_before_id
+  - name: ent_is_before_type
     sig: |
-      <b>ent_is_before_id</b>(id: String) ⇒ Boolean
-    synopsis: Returns <code>true</code> if there is a entity with ID <code>id</code> after this entity
+      <b>ent_is_before_type</b>(type: String) ⇒ Boolean
+    synopsis: Returns <code>true</code> if there is a entity with type <code>type</code> after this entity
     desc: |
-      Returns <code>true</code> if there is a entity with ID <code>id</code> after this entity.
+      Returns <code>true</code> if there is a entity with type <code>type</code> after this entity.
     usage: |
-      // Result: 'true' if there is a entity with ID 'a' after this entity.
-      ent_is_before_id('a')
+      // Result: 'true' if there is a entity with type 'a' after this entity.
+      ent_is_before_type('a')
 
-  - name: ent_is_after_id
+  - name: ent_is_after_type
     sig: |
-      <b>ent_is_after_id</b>(id: String) ⇒ Boolean
-    synopsis: Returns <code>true</code> if there is a entity with ID <code>id</code> before this entity
+      <b>ent_is_after_type</b>(type: String) ⇒ Boolean
+    synopsis: Returns <code>true</code> if there is a entity with type <code>type</code> before this entity
     desc: |
-      Returns <code>true</code> if there is a entity with ID <code>id</code> before this entity.
+      Returns <code>true</code> if there is a entity with type <code>type</code> before this entity.
     usage: |
-      // Result: 'true' if there is a entity with ID 'a' before this entity.
-      ent_is_after_id('a')
+      // Result: 'true' if there is a entity with type 'a' before this entity.
+      ent_is_after_type('a')
 
-  - name: ent_is_between_ids
+  - name: ent_is_between_types
     sig: |
-      <b>ent_is_between_ids</b>(id1: String, id2: String) ⇒ Boolean
-    synopsis: Returns <code>true</code> if this entity is located between entities with IDs <code>id1</code> and <code>id2</code>
+      <b>ent_is_between_types</b>(type1: String, type2: String) ⇒ Boolean
+    synopsis: Returns <code>true</code> if this entity is located between entities with types <code>type1</code> and <code>type2</code>
     desc: |
-      Returns <code>true</code> if this entity is located between entities with IDs <code>id1</code> and <code>id2</code>.
+      Returns <code>true</code> if this entity is located between entities with types <code>type1</code> and <code>type2</code>.
     usage: |
-      // Result: 'true' if this entity is located after entity with ID 'before' and before the entity with ID 'after'.
-      ent_is_between_ids('before', 'after')
+      // Result: 'true' if this entity is located after entity with type 'before' and before the entity with type 'after'.
+      ent_is_between_types('before', 'after')
 
   - name: ent_is_between_groups
     sig: |
@@ -199,16 +199,16 @@
       // Result: number of all entities for the original input.
       ent_count
 
-  - name: ent_all_for_id
+  - name: ent_all_for_type
     sig: |
-      <b>ent_all_for_id</b>(id: String) ⇒ List[Entity]
+      <b>ent_all_for_type</b>(type: String) ⇒ List[Entity]
     synopsis: |
-      Returns list of entities from the original input with ID <code>id</code>
+      Returns list of entities from the original input with type <code>type</code>
     desc: |
-      Returns list of entities from the original input with ID <code>id</code>.
+      Returns list of entities from the original input with type <code>type</code>.
     usage: |
-      // Result: list of entities for the original input that have ID 'id'.
-      ent_all_for_id('id')
+      // Result: list of entities for the original input that have type 'type'.
+      ent_all_for_type('type')
 
   - name: ent_all_for_group
     sig: |
diff --git a/intent-matching.html b/intent-matching.html
index 414e671..8b419ea 100644
--- a/intent-matching.html
+++ b/intent-matching.html
@@ -212,11 +212,11 @@
                                             <li><code>ent_count()</code></li>
                                             <li><code>ent_is_last()</code></li>
                                             <li><code>ent_is_first()</code></li>
-                                            <li><code>ent_is_before_id()</code></li>
+                                            <li><code>ent_is_before_type()</code></li>
                                             <li><code>ent_is_before_group()</code></li>
-                                            <li><code>ent_is_between_ids()</code></li>
+                                            <li><code>ent_is_between_types()</code></li>
                                             <li><code>ent_is_between_groups()</code></li>
-                                            <li><code>ent_is_after_id()</code></li>
+                                            <li><code>ent_is_after_type()</code></li>
                                             <li><code>ent_is_after_group()</code></li>
                                         </ul>
                                     </td>
@@ -510,7 +510,7 @@
         </p>
         <pre class="brush: idl">
         intent=a
-            term~{# == 'x:id'}
+            term~{# == 'x:type'}
             term(nums)~{# == 'num' && lowercase(meta_ent('num:unittype')) == 'datetime'}[0,2]
         </pre>
         <p><b>NOTES:</b></p>
@@ -529,7 +529,7 @@
                 Both terms have to be found in the user input for the intent to match.
             </li>
             <li>
-                First term matches any single entity with ID <code>x:id</code>.
+                First term matches any single entity with type <code>x:type</code>.
             </li>
             <li>
                 Second term can appear zero, once or two times and it matches entity with ID <code>num</code> with
@@ -593,13 +593,13 @@
         <div class="bq info">
             <p><b>Special Shorthand <code>#</code></b></p>
             <p>
-                The frequently used IDL function <code>ent_id()</code> has a special shorthand <code>#</code>. For example,
+                The frequently used IDL function <code>ent_type()</code> has a special shorthand <code>#</code>. For example,
                 the following expressions are all equal:
             </p>
             <pre class="brush: idl">
-                ent_id() == 'id'
-                ent_id == 'id' // Remember - empty parens are optional.
-                # == 'id'
+                ent_type() == 'type'
+                ent_type == 'type' // Remember - empty parens are optional.
+                # == 'type'
             </pre>
         </div>
         <p>
@@ -1129,7 +1129,7 @@
                 whose element is defined in the model.
             </li>
             <li>
-                Second term is defined as a single mandatory (<code>min=1, max=1</code>) entity with ID <code>opennlp:location</code>.
+                Second term is defined as a single mandatory (<code>min=1, max=1</code>) entity with entity<code>opennlp:location</code>.
             </li>
             <li>
                 Given data model definition above the following sentences will be matched by this intent: