diff --git a/README.md b/README.md
index 2501f3b..ecc1d72 100644
--- a/README.md
+++ b/README.md
@@ -1,31 +1,50 @@
 NFD - Named Data Networking Forwarding Daemon
-==============================================================
+=============================================
 
-NFD is the network forwarder that implements the Named Data Networking (NDN)
-[protocol](http://named-data.net/doc/ndn-tlv/) and evolves together with the NDN protocol.
+NFD is a network forwarder that implements and evolves together with the Named Data
+Networking (NDN) [protocol](http://named-data.net/doc/ndn-tlv/).  After the initial
+release, NFD will become a core component of the
+[NDN Platform](http://named-data.net/codebase/platform/) and will follow the same release
+cycle.
 
-The main design goal of NFD development is to support diverse experimention of NDN
-research.  The design emphasizes on modularity and extensibility to allow easy experiments
-with new protocol features, new algorithms, and new applications.  We have not optimized
-the code for performance, but it can be achieved within the same framework by trying out
-different data structures and algorithms.
+NFD is an open and free software package licensed under GPL 3.0 license and is the
+centerpiece of our committement to making NDN's core technology open and free to all
+Internet users and developers.  For more information about the licensing details and
+limitation, refer to
+[`COPYING.md`](https://github.com/named-data/NFD/blob/master/COPYING.md).
 
-NFD is open, free, and developed by a community effort.  Although most code of this first
-release was done by the NSF-sponsored NDN project team, it also contains significant
-contributions by people outside the project team.  We strongly encourage contributions from
-all interested parties, since broader community support is key to NDN’s success as a new
-Internet architecture.  Bug reports and feedbacks can be made through
+NFD is developed by a community effort.  Although the first release was mostly done by the
+members of [NSF-sponsored NDN project team](http://named-data.net/project/participants/),
+it already contains significant contributions from people outside the project team (for
+more details, refer to [`AUTHORS.md`](https://github.com/named-data/NFD/blob/master/AUTHORS.md)).
+We strongly encourage participation from all interested parties, since broader community
+support is key for NDN to succeed as a new Internet architecture.  Bug reports and
+feedback are highly appreciated and can be made through
 [Redmine site](http://redmine.named-data.net/projects/nfd) and the
 [ndn-interest mailing list](http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest).
 
-The design and development of NFD benefited from our experiences with CCNx. However NFD
-does not maintain compatibility with [CCNx](http://www.ccnx.org).
+The main design goal of NFD is to support diverse experimentation of NDN technology.  The
+design emphasizes *modularity* and *extensibility* to allow easy experiments with new
+protocol features, algorithms, new applications.  We have not fully optimized the code for
+performance.  The intention is that performance optimizations are one type of experiments
+that developers can conduct by trying out different data structures and different
+algorithms; over time, better implementations may emerge within the same design framework.
+
+NFD will keep evolving in three aspects: improvement of the modularity framework, keeping
+up with the NDN protocol spec, and addition of other new features. We hope to keep the
+modular framework stable and lean, allowing researchers to implement and experiment
+with various features, some of which may eventually work into the protocol spec.
+
+The design and development of NFD benefited from our earlier experience with
+[CCNx](http://www.ccnx.org) software package.  However, NFD is not in any part derived from
+CCNx codebase and does not maintain compatibility with CCNx.
 
 Documentation
 -------------
 
 For more information refer to
 
-* [Installation instruction `docs/INSTALL.rst`](https://github.com/named-data/NFD/blob/master/docs/INSTALL.rst),
+* [Release notes `docs/RELEASE_NOTES.rst`](https://github.com/named-data/NFD/blob/master/docs/RELEASE_NOTES.rst)
+* [Installation instruction `docs/INSTALL.rst`](https://github.com/named-data/NFD/blob/master/docs/INSTALL.rst)
 * [Hints on configuration `docs/README.rst`](https://github.com/named-data/NFD/blob/master/docs/README.rst)
-* Other documentation in [`docs/`](https://github.com/named-data/NFD/blob/master/docs) folder.
+* Other documentation in [`docs/`](https://github.com/named-data/NFD/blob/master/docs) folder
