diff --git a/data.rst b/data.rst
index 165392e..ef79269 100644
--- a/data.rst
+++ b/data.rst
@@ -86,7 +86,7 @@
 ::
 
     FinalBlockId ::= FINAL-BLOCK-ID-TLV TLV-LENGTH 
-                          NameComponent
+                          (NameComponent | NumberComponent)
 
 The optional FinalBlockId indicates the identifier of the final block
 in a sequence of fragments.
diff --git a/interest.rst b/interest.rst
index 30b4706..2789968 100644
--- a/interest.rst
+++ b/interest.rst
@@ -77,7 +77,7 @@
 
 ::
 
-    Exclude ::= EXCLUDE-TYPE TLV-LENGTH Any? (NameComponent (Any)?)+
+    Exclude ::= EXCLUDE-TYPE TLV-LENGTH Any? ((NameComponent | NumberComponent | ImplicitSha256DigestComponent) (Any)?)+
     Any ::= ANY-TYPE TLV-LENGTH(=0)
 
 The ``Exclude`` selectors allows requester to specify list and/or ranges of names components that MUST NOT appear as a continuation of the Name prefix in the responding Data packet to the Interest.
diff --git a/name.rst b/name.rst
index 922bb1c..52e5b67 100644
--- a/name.rst
+++ b/name.rst
@@ -10,8 +10,8 @@
 
 We use a 2-level nested TLV to represent a name.
 The Type in the outer TLV indicates this is a Name.
-All inner TLVs have the same Type indicating that they each contain a name component.
-There is no restriction on the Value field in a name component and it may not contain any bytes:
+All inner TLVs have Type either NameComponent, NumberComponent, or ImplicitSha256DigestComponent, indicating that the name component is a generic name component, number, or implicit digest.
+There is no restriction on the Value field in a name component, but empty value is not allowed:
 
 ::
 
@@ -30,9 +30,9 @@
 .. % 0 or many bytes in name component
 
 
-``NameComponent`` is a generic name component, containing any application defined data.
+``NameComponent`` is a generic name component, containing any application defined value.
 
-``NumberComponent`` is a component that carries non-negative integer.
+``NumberComponent`` is a component that carries a non-negative integer.
 
 ``ImplicitSha256DigestComponent`` is an implicit SHA256 digest component.
 
@@ -51,20 +51,19 @@
 
     When producing a URI from an NDN Name, only the generic URI unreserved characters are left unescaped.
     These are the US-ASCII upper and lower case letters (A-Z, a-z), digits (0-9), and the four specials PLUS (+), PERIOD (.), UNDERSCORE (\_), and HYPHEN (-).
-    All other characters are escaped using either the percent-encoding method of the URI Generic Syntax or a ``ndn`` scheme specific hexadecimal string escape starting with the EQUALS (=) and an even number of characters from the set of hex digits.
-    Once an EQUALS has been encountered in a component the hexadecimal encoding persists until the end of the component.
-    The hex digits in these escaped encodings should always use upper-case letters, i.e., A-Z.
+    All other characters are escaped using either the percent-encoding method of the URI Generic Syntax.
 
-    To unambiguously represent name components that would collide with the use of . and .. for relative URIs, any component that consists solely of zero or more periods is encoded using three additional periods.
+    To unambiguously represent name components that would collide with the use of . and .. for relative URIs, any component that consists solely of one or more periods is encoded using three additional periods.
 
   * ``NumberComponent``
 
-    Number components start with ``number=`` prefix, following with textual representation of the number.
+    Number components start with ``number=`` prefix (case sensitive), following with textual representation of the number.
     For example, ``number=10`` represents a NumberComponent with encoded value of 10.
+    The number must be decimal and should be without leading zeros.
 
   * ``ImplicitSha256DigestComponent``
 
-    Implicit SHA256 digest component starts with ``sha256digest=`` prefix, following the digest represented as a sequence of 32 hexadecimal numbers.
+    Implicit SHA256 digest component starts with ``sha256digest=`` prefix (case sensitive), following the digest represented as a sequence of 32 hexadecimal numbers.
     For example, ``sha256digest=893259d98aca58c451453f29ec7dc38688e690dd0b59ef4f3b9d33738bff0b8d``
 
 - The authority component (the part after the initial ``//`` in the familiar http and ftp URI schemes) is not relevant to NDN.
@@ -91,7 +90,7 @@
 
 The order between individual name components is defined as follows:
 
-- Any ``ImplicitSha256DigestComponent`` less than any ``NumberComponent``, which is less than any ``NameComponent``
+- Any ``ImplicitSha256DigestComponent`` is less than any ``NumberComponent``, which is less than any ``NameComponent``
 
 ::
 
