diff --git a/data.rst b/data.rst
index 7b1e5b8..eba092c 100644
--- a/data.rst
+++ b/data.rst
@@ -7,11 +7,11 @@
 
     Data ::= DATA-TLV TLV-LENGTH
                Name
-               MetaInfo
-               Content
+               MetaInfo?
+               Content?
                Signature
 
-The Data packet represents some arbitrary binary data (held in the Content element) together with its Name, some additional bits of information (MetaInfo), and a digital Signature of the other three elements. The Name is the first element since all NDN packet processing starts with the name.  Signature is put at the end of the packet to ease the implementation because signature computation covers all the elements before Signature.
+The Data packet represents some arbitrary binary data (held in the optional ``Content`` element) together with its ``Name``, some additional bits of optional information (``MetaInfo``), and a digital ``Signature`` of the other element(s). The Name is the first element since all NDN packet processing starts with the name.  Signature is put at the end of the packet to ease the implementation because signature computation covers all the elements before Signature.
 
 Name
 ~~~~
@@ -23,8 +23,6 @@
 MetaInfo
 ~~~~~~~~
 
-.. [#f1] If ``ContentType``, ``FreshnessPeriod`` and ``FinalBlockId`` are optional, one may consider ``Metainfo`` itself should be optional. But would having all 4 parts of Data packet help simplify implementation? We leave this question to people who are more familiar with high speed implementations.
-
 ::
 
     MetaInfo ::= META-INFO-TYPE TLV-LENGTH
@@ -42,21 +40,22 @@
 
 The following ContentTypes are currently defined:
 
-+-----------------+----------------+--------------------------------------------------------------+
-| ContentType     | Assigned value | Description of the content                                   |
-+=================+================+==============================================================+
-| BLOB            | 0              | payload identified by the data name; this is the default     |
-|                 |                | ContentType                                                  |
-+-----------------+----------------+--------------------------------------------------------------+
-| LINK            | 1              | a list of delegations (see :ref:`link`)                      |
-+-----------------+----------------+--------------------------------------------------------------+
-| KEY             | 2              | public key                                                   |
-+-----------------+----------------+--------------------------------------------------------------+
-| NACK            | 3              | application-level NACK                                       |
-+-----------------+----------------+--------------------------------------------------------------+
++-----------------+-----------------+--------------------------------------------------------------+
+| ContentType     | Assigned number | Description of the content                                   |
++=================+=================+==============================================================+
+| BLOB            | 0               | payload identified by the data name; this is the default     |
+|                 |                 | ContentType                                                  |
++-----------------+-----------------+--------------------------------------------------------------+
+| LINK            | 1               | a list of delegations (see :ref:`link`)                      |
++-----------------+-----------------+--------------------------------------------------------------+
+| KEY             | 2               | public key                                                   |
++-----------------+-----------------+--------------------------------------------------------------+
+| NACK            | 3               | application-level NACK                                       |
++-----------------+-----------------+--------------------------------------------------------------+
 
 Other ContentType numbers are assigned and maintained in `NDN Packet Specification Wiki <https://redmine.named-data.net/projects/ndn-tlv/wiki/ContentType>`__.
 
+.. _FreshnessPeriod:
 
 FreshnessPeriod
 +++++++++++++++
@@ -66,33 +65,28 @@
     FreshnessPeriod ::= FRESHNESS-PERIOD-TLV TLV-LENGTH
                           nonNegativeInteger
 
-The optional FreshnessPeriod indicates how long a node should wait after the arrival of this data before marking it as stale.
+The optional ``FreshnessPeriod`` indicates how long a node should wait after the arrival of this data before marking it "non-fresh".
 The encoded value is number of milliseconds.
-Note that the stale data is still valid data; the expiration of FreshnessPeriod only means that the producer may have produced newer data.
+Note that the "non-fresh" data is still valid data; the expiration of ``FreshnessPeriod`` only means that the producer may have produced newer data.
 
-Each content store associates every piece of Data with a staleness bit.
-If the Data carries a FreshnessPeriod, it will initially be considered "fresh" and, after the Data has resided in the content store for FreshnessPeriod, it will be marked as stale.
-This is per object staleness and is local to the NDN node.
+If the Data packet carries a ``FreshnessPeriod`` greater than zero, a node should initially consider it "fresh".  After the Data has resided in the node for ``FreshnessPeriod`` milliseconds, it will be marked as "non-fresh".
+If the Data does not have a ``FreshnessPeriod`` or if it has a ``FreshnessPeriod`` equal to zero, it MUST be immediately marked "non-fresh".
 
-If an Interest contains MustBeFresh TLV, a content store MUST NOT return Data with the staleness bit set in response to this interest.
-The effect is the same as if that stale Data did not exist (i.e., the Interest might be matched by some other Data in the store, or, failing that, get forwarded to other nodes).
-When an exact duplicate of the "stale" Data packet, carrying a positive FreshnessPeriod value, is inserted into a content store, the store SHOULD remove the "stale" bit from the cached Data.
-In particular, the Data in the store is no longer stale.
-
-When a content store receives a Data packet without a FreshnessPeriod or with a FreshnessPeriod equal to 0, then it can satisfy an Interest marked MustBeFresh.
+If an Interest contains ``MustBeFresh`` element, a node MUST NOT return "non-fresh" Data in response to this Interest.
+The effect is the same as if that "non-fresh" Data did not exist (i.e., the Interest might be matched by some other Data in the store, or, failing that, get forwarded to other nodes).
+When an exact duplicate of the "non-fresh" Data packet with a positive ``FreshnessPeriod`` value arrives at the node, the node SHOULD re-mark it as "fresh" for the specified duration.
 
 FinalBlockId
 ++++++++++++
 
 ::
 
-    FinalBlockId ::= FINAL-BLOCK-ID-TLV TLV-LENGTH
-                          NameComponent
+    FinalBlockId ::= FINAL-BLOCK-ID-TYPE TLV-LENGTH
+                       NameComponent
 
-The optional FinalBlockId indicates the identifier of the final block
-in a sequence of fragments.
+The optional FinalBlockId identifies the final block in a sequence of fragments.
 It should be present in the final block itself, and may also be present in other fragments to provide advanced warning of the end to consumers.
-The value here should be equal to the last explicit Name Component of the final block.
+The value here should be equal to the last explicit name component of the final block.
 
 
 .. _Content:
@@ -103,3 +97,5 @@
 ::
 
     Content ::= CONTENT-TYPE TLV-LENGTH BYTE*
+
+The ``Content`` element can carry any arbitrary sequence of bytes.
