diff --git a/README b/README
index 1adb58e..c14b415 100644
--- a/README
+++ b/README
@@ -1,12 +1,51 @@
-NDN.JS is the first native version of the NDN protocol (also referred to as CCN) written in JavaScript.
 
-The goal of this project is to improve the current implementation of the NDN API that allows users to create applications running on top of the NDN network. The goal is to have a lightweight version of the protocol, which can run on browsers. The main intent is to enable browser-based applications to use NDN directly without requiring a binary build of the CCNx code. In particular, the goal is to have an AJAX-style dynamic data access. The goal is also to have a lighter version of the protocol, which would be better suited for embedded systems. Furthermore, the goal is that NDN.JS communicates with CCNx nodes (routers).
+NDN.JS:  A javascript client library for Named Data Networking
+--------------------------------------------------------------
 
-The current status of NDN.JS allows for JavaScript applications running on browsers to send interest packets and retrieve data packets. This includes encoding and decoding data packets.
+NDN.JS is the first native version of the NDN protocol written in JavaScript.  It is wire format compatible with PARC's CCNx. 
 
-This is currently done in the following way:
+The project by the UCLA NDN team - for more information on NDN, see
+	http://named-data.net/
+	http://ndn.ucla.edu/
+	
+NDN.JS is open source under a license described in the file COPYING.  While the license does not require it, we really would appreciate it if others would share their contributions to the library if they are willing to do so under the same license. 
 
-var ndn = new NDN();
+---
+
+This is a young project, with minimal documentation that we are slowly enhancing.  Please email Jeff Burke (jburke@remap.ucla.edu) with any questions. 
+
+The primary goal of NDN.JS is to provide a pure Javascript implementation of the NDN API that enables developers to create browser-based applications using Named Data Networking. The approach requires no native code or signed Java applets, and thus can be delivered over the current web to modern browsers with no hassle for the end user.
+
+Additional goals for the project:
+	- Websockets transport (rather than TCP or UDP, which are not directly supported in Javascript).
+	- Relatively lightweight and compact, to enable efficient use on the web.	
+	- Wire format compatible with PARC's CCNx implementation of NDN.
+	
+The library currently requires a remote NDN daemon, and has been tested with ccnd, from the's CCNx package: http://ccnx.org/
+
+Currently, the library has two APIs for developers: 
+
+	1. The Javascript API for asynchronous Interest/Data exchange.
+	   This uses WebSockets for transport and currently requires a 
+	   proxy for communication with a remote ccnd daemon.
+
+	2. A Firefox plug-in, which implements an "ndn:/" url scheme
+	   following CCNx repository conventions for file retrieval.
+	   
+By default, both parts of the library connect automatically to a set of proxies and hubs that are part of the NDN research project's testbed.  http://named-data.net/testbed.html  There are currently no restrictions on non-commercial, research-oriented data exchange on this testbed. (Contact jburke@remap.ucla.edu for more details.)   The developer can also specify a local or remote ccnd as well, as an argument to the NDN constructor. 
+
+	
+
+JAVASCRIPT API
+--------------
+
+See files in js/  and examples in js/testing/
+
+NDN.JS currently supports expressing Interests (and receiving data) and publishing Data (that answers Interests).  This includes encoding and decoding data packets as well as signing and verifying them using RSA keys.
+
+A simple example of the current API to express an Interest and receive data:
+
+var ndn = new NDN();	// connect to default hub/proxy
 ndn.transport.connectWebSocket(ndn);
         
 var AsyncGetClosure = function AsyncGetClosure() {
@@ -23,9 +62,15 @@
 
 ndn.expressInterest(new Name("/ndn/ucla.edu/apps/ndn-js-test/hello.txt"), new AsyncGetClosure());
 
-*** Firefox extension for the ndn protocol
 
-NDN.JS also includes a Firefox extension for the ndn protocol.  To install, either download
+FIREFOX ADD-ON FOR THE NDN PROTOCOL
+-----------------------------------
+
+See files in js/ndnProtocol
+
+NDN.JS includes a Firefox extension for the ndn protocol.  
+
+To install, either download
 https://github.com/remap/ndn-js/blob/master/js/ndnProtocol.xpi
 or use js/ndnProtocol.xpi in the distribution.  In Firefox, open
 Tools > Add-ons.  In the "gear" or "wrench" menu, click Install Add-on From File and open
@@ -38,7 +83,7 @@
 retrieved content object including the version, but without the implicit digest or segment number 
 (see below).
 
-* Interest selectors in the ndn protocol
+* Interest selectors in the ndn protocol:
 
 You can add interest selectors. For example, this uses 1 to select the "rightmost" child (latest version).
 ndn:/ndn/ucla.edu/apps/ndn-js-test/hello.txt?ndn.ChildSelector=1&key=value#ref
