diff --git a/README b/README
index 0f6f5a3..9ce9bac 100644
--- a/README
+++ b/README
@@ -1,8 +1,8 @@
-First native version of the NDN protocol written in Javascript ( Also refereed to as CCN )
+cFirst native version of the NDN protocol written in Javascript (also referred to as CCN).
 
-The goal of this project is to improve the current implementation of the NDN-JS 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).
+The goal of this project is to improve the current implementation of the NDN.JS 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).
 
-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.
+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.
 
 This is currently done in the following way:
 
@@ -23,45 +23,45 @@
 
 ndn.expressInterest(new Name("/ndn/ucla.edu/apps/ndn-js-test/hello.txt"), new AsyncGetClosure());
 
-*** Firefox extension for the ccnx protocol
+*** Firefox extension for the ndn protocol
 
-NDN-JS also includes a Firefox extension for the ccnx protocol.  To install, either download
-https://github.com/remap/ndn-js/blob/master/js/ccnxProtocol.xpi
-or use js/ccnxProtocol.xpi in the distribution.  In Firefox, open
+NDN.JS also 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
-ccnxProtocol.xpi.  Restart Firefox.
+ndnProtocol.xpi.  Restart Firefox.
 
-Firefox uses the protocol extension to load any URI starting with ccnx, for example
-ccnx:/ndn/ucla.edu/apps/lwndn-test/trig-table
+Firefox uses the protocol extension to load any URI starting with ndn, for example
+ndn:/ndn/ucla.edu/apps/lwndn-test/trig-table
 
 When the page is loaded, Firefox updates the address bar with the full matched name from the
 retrieved content object including the version, but without the implicit digest or segment number 
 (see below).
 
-* Interest selectors in the ccnx protocol
+* Interest selectors in the ndn protocol
 
 You can add interest selectors. For example, this uses 1 to select the "rightmost" child (latest version).
-ccnx:/ndn/ucla.edu/apps/ndn-js-test/hello.txt?ccnx.ChildSelector=1&key=value#ref
+ndn:/ndn/ucla.edu/apps/ndn-js-test/hello.txt?ndn.ChildSelector=1&key=value#ref
 
 The browser loads the latest version and changes the address to:
-ccnx:/ndn/ucla.edu/apps/ndn-js-test/hello.txt/%FD%05%0B%16z%22%D1?key=value#ref
+ndn:/ndn/ucla.edu/apps/ndn-js-test/hello.txt/%FD%05%0B%16z%22%D1?key=value#ref
 
-The child selector was used and removed. Note that the other non-ccnx query values and 
+The child selector was used and removed. Note that the other non-ndn query values and 
 ref "?key=value#ref" are still present, in case they are needed by the web application.
 
 The following selector keys are supported:
-ccnx.MinSuffixComponent= non-negative int
-ccnx.MaxSuffixComponents= non-negative int
-ccnx.ChildSelector= non-negative int
-ccnx.AnswerOriginKind= non-negative int
-ccnx.Scope= non-negative int
-ccnx.InterestLifetime= non-negative int
-ccnx.PublisherPublicKeyDigest= % escaped value
-ccnx.Nonce= % escaped value
+ndn.MinSuffixComponent= non-negative int
+ndn.MaxSuffixComponents= non-negative int
+ndn.ChildSelector= non-negative int
+ndn.AnswerOriginKind= non-negative int
+ndn.Scope= non-negative int
+ndn.InterestLifetime= non-negative int
+ndn.PublisherPublicKeyDigest= % escaped value
+ndn.Nonce= % escaped value
 
-TODO: implement ccnx.Exclude. 
+TODO: implement ndn.Exclude. 
 
-* Multiple segments in the ccnx protocol
+* Multiple segments in the ndn protocol
 
 A URI for content with multiple segments is handled as follows.
 If the URI has a segment number, just retrieve that segment and return the content to the browser.
diff --git a/js/FaceInstance.js b/js/FaceInstance.js
index dfc44a6..fd4868a 100644
--- a/js/FaceInstance.js
+++ b/js/FaceInstance.js
@@ -42,7 +42,6 @@
 
 /**
  * Used by NetworkObject to decode the object from a network stream.
- * @see org.ccnx.ccn.impl.encoding.XMLEncodable
  */
 FaceInstance.prototype.from_ccnb = function(//XMLDecoder 
 	decoder) {
@@ -114,7 +113,6 @@
 
 /**
  * Used by NetworkObject to encode the object to a network stream.
- * @see org.ccnx.ccn.impl.encoding.XMLEncodable
  */
 FaceInstance.prototype.to_ccnb = function(//XMLEncoder
 	encoder){
diff --git a/js/ForwardingEntry.js b/js/ForwardingEntry.js
index a095516..b223004 100644
--- a/js/ForwardingEntry.js
+++ b/js/ForwardingEntry.js
@@ -66,7 +66,6 @@
 
 		/**
 		 * Used by NetworkObject to encode the object to a network stream.
-		 * @see org.ccnx.ccn.impl.encoding.XMLEncodable
 		 */
 ForwardingEntry.prototype.to_ccnb =function(
 	//XMLEncoder 
diff --git a/js/Name.js b/js/Name.js
index b8a484a..8bd355d 100644
--- a/js/Name.js
+++ b/js/Name.js
@@ -45,7 +45,7 @@
         // Make sure the colon came before a '/'.
         var iFirstSlash = name.indexOf('/');
         if (iFirstSlash < 0 || iColon < iFirstSlash)
-            // Omit the leading protocol such as ccnx:
+            // Omit the leading protocol such as ndn:
             name = name.substr(iColon + 1, name.length - iColon - 1).trim();
     }
     
@@ -152,7 +152,7 @@
 	return this.components.push(result);
 };
 
-// Return the escaped name string according to "CCNx URI Scheme".  Does not include "ccnx:".
+// Return the escaped name string according to "CCNx URI Scheme".
 Name.prototype.to_uri = function() {	
 	var result = "";
 	
diff --git a/js/WebSocketTransport.js b/js/WebSocketTransport.js
index 83f53d9..007e9da 100644
--- a/js/WebSocketTransport.js
+++ b/js/WebSocketTransport.js
@@ -227,9 +227,9 @@
 		co.sign();
 		var coBinary = encodeToBinaryContentObject(co);
 		
-		//var ccnxnodename = unescape('%00%88%E2%F4%9C%91%16%16%D6%21%8E%A0c%95%A5%A6r%11%E0%A0%82%89%A6%A9%85%AB%D6%E2%065%DB%AF');
-		var ccnxnodename = this.ccndid;
-		var interestName = new Name(['ccnx', ccnxnodename, 'selfreg', coBinary]);
+		//var nodename = unescape('%00%88%E2%F4%9C%91%16%16%D6%21%8E%A0c%95%A5%A6r%11%E0%A0%82%89%A6%A9%85%AB%D6%E2%065%DB%AF');
+		var nodename = this.ccndid;
+		var interestName = new Name(['ccnx', nodename, 'selfreg', coBinary]);
 
 		var interest = new Interest(interestName);
 		interest.scope = 1;
diff --git a/js/ccnxProtocol.xpi b/js/ccnxProtocol.xpi
deleted file mode 100644
index c5dd932..0000000
--- a/js/ccnxProtocol.xpi
+++ /dev/null
Binary files differ
diff --git a/js/ccnxProtocol/chrome.manifest b/js/ccnxProtocol/chrome.manifest
deleted file mode 100644
index 6357dd3..0000000
--- a/js/ccnxProtocol/chrome.manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-component {8122e660-1012-11e2-892e-0800200c9a66} components/ccnxProtocolService.js
-contract @mozilla.org/network/protocol;1?name=ccnx {8122e660-1012-11e2-892e-0800200c9a66}
-content modules modules/
-content toolbar content/
-overlay chrome://browser/content/browser.xul chrome://toolbar/content/toolbar.xul
\ No newline at end of file
diff --git a/js/ccnxProtocol/content/toolbar.xul b/js/ccnxProtocol/content/toolbar.xul
deleted file mode 100644
index 9b7d04a..0000000
--- a/js/ccnxProtocol/content/toolbar.xul
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>                 
-<overlay id="Scrapper-Overlay"
-xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
-<script type="application/x-javascript" src="chrome://toolbar/content/ccnxToolbar.js" />
-
-<toolbox id="navigator-toolbox">
-  <toolbar id="CcnxToolbar" toolbarname="ccnxToolbar" >
-      <label value="CCNX"/>
-      <toolbarbutton id="CcnxToolbarGetLatestButton"
-        label="Get Latest" oncommand="CcnxToolbarGetLatest(event)" />
-  </toolbar>
-</toolbox>
-
-</overlay>
diff --git a/js/ndnProtocol.xpi b/js/ndnProtocol.xpi
new file mode 100644
index 0000000..834c170
--- /dev/null
+++ b/js/ndnProtocol.xpi
Binary files differ
diff --git a/js/ndnProtocol/chrome.manifest b/js/ndnProtocol/chrome.manifest
new file mode 100644
index 0000000..0d5497e
--- /dev/null
+++ b/js/ndnProtocol/chrome.manifest
@@ -0,0 +1,5 @@
+component {8122e660-1012-11e2-892e-0800200c9a66} components/ndnProtocolService.js
+contract @mozilla.org/network/protocol;1?name=ndn {8122e660-1012-11e2-892e-0800200c9a66}
+content modules modules/
+content toolbar content/
+overlay chrome://browser/content/browser.xul chrome://toolbar/content/toolbar.xul
\ No newline at end of file
diff --git a/js/ccnxProtocol/components/ccnxProtocolService.js b/js/ndnProtocol/components/ndnProtocolService.js
similarity index 84%
rename from js/ccnxProtocol/components/ccnxProtocolService.js
rename to js/ndnProtocol/components/ndnProtocolService.js
index 6e7224c..f3a8909 100644
--- a/js/ccnxProtocol/components/ccnxProtocolService.js
+++ b/js/ndnProtocol/components/ndnProtocolService.js
@@ -1,7 +1,7 @@
 /*
  * @author: Jeff Thompson
  * See COPYING for copyright and distribution information.
- * This is the ccnx protocol handler for NDN.
+ * This is the ndn protocol handler.
  * Protocol handling code derived from http://mike.kaply.com/2011/01/18/writing-a-firefox-protocol-handler/
  */
 
@@ -15,11 +15,11 @@
 Components.utils.import("chrome://modules/content/ndn-js.jsm");
 Components.utils.import("chrome://modules/content/ContentChannel.jsm");
 
-function CcnxProtocol() {
+function NdnProtocol() {
 }
 
-CcnxProtocol.prototype = {
-    scheme: "ccnx",
+NdnProtocol.prototype = {
+    scheme: "ndn",
     protocolFlags: nsIProtocolHandler.URI_NORELATIVE |
                    nsIProtocolHandler.URI_NOAUTH |
                    nsIProtocolHandler.URI_LOADABLE_BY_ANYONE,
@@ -39,7 +39,7 @@
 
     newChannel: function(aURI)
     {
-        var thisCcnxProtocol = this;
+        var thisNdnProtocol = this;
         
         try {            
             // Decode manually since nsIURI doesn't have selectors for hash, etc.
@@ -56,7 +56,7 @@
             var template = new Interest(new Name([]));
             // Use the same default as NDN.expressInterest.
             template.interestLifetime = 4200;
-            var searchWithoutCcnx = extractCcnxSearch(search, template);
+            var searchWithoutNdn = extractNdnSearch(search, template);
     
             var requestContent = function(contentListener) {                
                 var name = new Name(nameString);
@@ -65,29 +65,29 @@
                 
                 var ndn = new NDN({ host: "lioncub.metwi.ucla.edu", port: 9695,
                       // Use the same transport object each time.
-                      getTransport: function() { return thisCcnxProtocol.transport; } });
+                      getTransport: function() { return thisNdnProtocol.transport; } });
                 ndn.expressInterest(name, 
                     new ContentClosure(ndn, contentListener, uriEndsWithSegmentNumber, 
-                            aURI.originCharset, searchWithoutCcnx + hash),
+                            aURI.originCharset, searchWithoutNdn + hash),
                     template);
             };
 
             return new ContentChannel(aURI, requestContent);
         } catch (ex) {
-            dump("CcnxProtocol.newChannel exception: " + ex + "\n" + ex.stack);
+            dump("NdnProtocol.newChannel exception: " + ex + "\n" + ex.stack);
         }
     },
 
-    classDescription: "ccnx Protocol Handler",
-    contractID: "@mozilla.org/network/protocol;1?name=" + "ccnx",
+    classDescription: "ndn Protocol Handler",
+    contractID: "@mozilla.org/network/protocol;1?name=" + "ndn",
     classID: Components.ID('{8122e660-1012-11e2-892e-0800200c9a66}'),
     QueryInterface: XPCOMUtils.generateQI([Ci.nsIProtocolHandler])
 }
 
 if (XPCOMUtils.generateNSGetFactory)
-    var NSGetFactory = XPCOMUtils.generateNSGetFactory([CcnxProtocol]);
+    var NSGetFactory = XPCOMUtils.generateNSGetFactory([NdnProtocol]);
 else
-    var NSGetModule = XPCOMUtils.generateNSGetModule([CcnxProtocol]);
+    var NSGetModule = XPCOMUtils.generateNSGetModule([NdnProtocol]);
                 
 /*
  * Create a closure for calling expressInterest.
@@ -121,7 +121,7 @@
         
     var contentObject = upcallInfo.contentObject;
     if (contentObject.content == null) {
-        dump("CcnxProtocol.ContentClosure: contentObject.content is null\n");
+        dump("NdnProtocol.ContentClosure: contentObject.content is null\n");
         return Closure.RESULT_ERR;
     }
 
@@ -153,10 +153,10 @@
             var nameWithoutSegmentNumber = new Name
                 (contentObject.name.components.slice
                  (0, contentObject.name.components.length - 1));
-            contentUriSpec = "ccnx:" + nameWithoutSegmentNumber.to_uri();
+            contentUriSpec = "ndn:" + nameWithoutSegmentNumber.to_uri();
         }
         else
-            contentUriSpec = "ccnx:" + contentObject.name.to_uri();
+            contentUriSpec = "ndn:" + contentObject.name.to_uri();
     
         // Include the search and hash.
         contentUriSpec += this.uriSearchAndHash;
@@ -207,7 +207,7 @@
 };
              
 /*
- * Scan the name from the last component to the first (skipping special CCNx components)
+ * Scan the name from the last component to the first (skipping special name components)
  *   for a recognized file name extension, and return an object with properties contentType and charset.
  */
 function getNameContentTypeAndCharset(name) {
@@ -230,11 +230,11 @@
 }
 
 /*
- * Find all search keys starting with "ccnx." and set the attribute in template.
- * Return the search string including the starting "?" but with the "ccnx." keys removed,
+ * Find all search keys starting with "ndn." and set the attribute in template.
+ * Return the search string including the starting "?" but with the "ndn." keys removed,
  *   or return "" if there are no search terms left.
  */
-function extractCcnxSearch(search, template) {
+function extractNdnSearch(search, template) {
     if (!(search.length >= 1 && search[0] == '?'))
         return search;
     
@@ -243,31 +243,31 @@
     while (i < terms.length) {
         var keyValue = terms[i].split('=');
         var key = keyValue[0].trim();
-        if (key.substr(0, 5) == "ccnx.") {
+        if (key.substr(0, 4) == "ndn.") {
             if (keyValue.length >= 1) {
                 var value = keyValue[1].trim();
                 var nonNegativeInt = parseInt(value);
                 
-                if (key == "ccnx.MinSuffixComponents" && nonNegativeInt >= 0)
+                if (key == "ndn.MinSuffixComponents" && nonNegativeInt >= 0)
                     template.minSuffixComponents = nonNegativeInt;
-                if (key == "ccnx.MaxSuffixComponents" && nonNegativeInt >= 0)
+                if (key == "ndn.MaxSuffixComponents" && nonNegativeInt >= 0)
                     template.maxSuffixComponents = nonNegativeInt;
-                if (key == "ccnx.ChildSelector" && nonNegativeInt >= 0)
+                if (key == "ndn.ChildSelector" && nonNegativeInt >= 0)
                     template.childSelector = nonNegativeInt;
-                if (key == "ccnx.AnswerOriginKind" && nonNegativeInt >= 0)
+                if (key == "ndn.AnswerOriginKind" && nonNegativeInt >= 0)
                     template.answerOriginKind = nonNegativeInt;
-                if (key == "ccnx.Scope" && nonNegativeInt >= 0)
+                if (key == "ndn.Scope" && nonNegativeInt >= 0)
                     template.scope = nonNegativeInt;
-                if (key == "ccnx.InterestLifetime" && nonNegativeInt >= 0)
+                if (key == "ndn.InterestLifetime" && nonNegativeInt >= 0)
                     template.interestLifetime = nonNegativeInt;
-                if (key == "ccnx.PublisherPublicKeyDigest" && nonNegativeInt >= 0)
+                if (key == "ndn.PublisherPublicKeyDigest" && nonNegativeInt >= 0)
                     template.publisherPublicKeyDigest = DataUtils.toNumbersFromString(unescape(value));
-                if (key == "ccnx.Nonce" && nonNegativeInt >= 0)
+                if (key == "ndn.Nonce" && nonNegativeInt >= 0)
                     template.nonce = DataUtils.toNumbersFromString(unescape(value));
                 // TODO: handle Exclude.
             }
         
-            // Remove the "ccnx." term and don't advance i.
+            // Remove the "ndn." term and don't advance i.
             terms.splice(i, 1);
         }
         else
diff --git a/js/ccnxProtocol/content/ccnxToolbar.js b/js/ndnProtocol/content/ndnToolbar.js
similarity index 75%
rename from js/ccnxProtocol/content/ccnxToolbar.js
rename to js/ndnProtocol/content/ndnToolbar.js
index 00b76b5..3716b98 100644
--- a/js/ccnxProtocol/content/ccnxToolbar.js
+++ b/js/ndnProtocol/content/ndnToolbar.js
@@ -1,12 +1,12 @@
 Components.utils.import("chrome://modules/content/ndn-js.jsm");
 
-function CcnxToolbarGetLatest(event){
-  if (window._content.document.location.protocol != "ccnx:") {
-    alert("The address must start with ccnx");
+function ndnToolbarGetLatest(event){
+  if (window._content.document.location.protocol != "ndn:") {
+    alert("The address must start with ndn");
     return;
   }
 
-  // Parse the same as in ccnxprotocolService newChannel.
+  // Parse the same as in ndnProtocolService newChannel.
   var spec = window._content.document.location.href.trim();
   var preHash = spec.split('#', 1)[0];
   var hash = spec.substr(preHash.length).trim();
@@ -20,14 +20,14 @@
   var name = new Name(nameString);
   var indexOfVersion = getIndexOfVersion(name);
   if (indexOfVersion < 0) {
-    alert("The ccnx address does not have a version");
+    alert("The ndn address does not have a version");
     return;
   }
 
   var nameWithoutVersion = new Name(name.components.slice(0, indexOfVersion));
-  var searchWithChildSelector = (search == "" ? "?" : search + "&") + "ccnx.ChildSelector=1";
+  var searchWithChildSelector = (search == "" ? "?" : search + "&") + "ndn.ChildSelector=1";
     
-  var uri = "ccnx:" + nameWithoutVersion.to_uri() + searchWithChildSelector + hash;
+  var uri = "ndn:" + nameWithoutVersion.to_uri() + searchWithChildSelector + hash;
   window._content.document.location = uri;
 } 
 
diff --git a/js/ndnProtocol/content/toolbar.xul b/js/ndnProtocol/content/toolbar.xul
new file mode 100644
index 0000000..3653378
--- /dev/null
+++ b/js/ndnProtocol/content/toolbar.xul
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>                 
+<overlay id="Scrapper-Overlay"
+xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+<script type="application/x-javascript" src="chrome://toolbar/content/ndnToolbar.js" />
+
+<toolbox id="navigator-toolbox">
+  <toolbar id="NdnToolbar" toolbarname="ndnToolbar" >
+      <label value="NDN"/>
+      <toolbarbutton id="mdnToolbarGetLatestButton"
+        label="Get Latest" oncommand="ndnToolbarGetLatest(event)" />
+  </toolbar>
+</toolbox>
+
+</overlay>
diff --git a/js/ccnxProtocol/install.rdf b/js/ndnProtocol/install.rdf
similarity index 89%
rename from js/ccnxProtocol/install.rdf
rename to js/ndnProtocol/install.rdf
index 8d390e6..4bc834d 100644
--- a/js/ccnxProtocol/install.rdf
+++ b/js/ndnProtocol/install.rdf
@@ -3,8 +3,8 @@
   <Description about="urn:mozilla:install-manifest">
     <em:id>{8122e660-1012-11e2-892e-0800200c9a66}</em:id>
     <em:type>2</em:type>
-    <em:name>ccnx Protocol</em:name>
-    <em:version>0.1</em:version>
+    <em:name>ndn protocol</em:name>
+    <em:version>0.2</em:version>
     <em:creator>Jeff Thompson</em:creator>
     <em:targetApplication>
       <Description>
diff --git a/js/ccnxProtocol/modules/ContentChannel.jsm b/js/ndnProtocol/modules/ContentChannel.jsm
similarity index 100%
rename from js/ccnxProtocol/modules/ContentChannel.jsm
rename to js/ndnProtocol/modules/ContentChannel.jsm
diff --git a/js/ccnxProtocol/modules/make-ndn-js.jsm.sh b/js/ndnProtocol/modules/make-ndn-js.jsm.sh
similarity index 100%
rename from js/ccnxProtocol/modules/make-ndn-js.jsm.sh
rename to js/ndnProtocol/modules/make-ndn-js.jsm.sh
diff --git a/js/ccnxProtocol/modules/ndn-js-header.txt b/js/ndnProtocol/modules/ndn-js-header.txt
similarity index 100%
rename from js/ccnxProtocol/modules/ndn-js-header.txt
rename to js/ndnProtocol/modules/ndn-js-header.txt
diff --git a/js/ccnxProtocol/modules/ndn-js.jsm b/js/ndnProtocol/modules/ndn-js.jsm
similarity index 99%
rename from js/ccnxProtocol/modules/ndn-js.jsm
rename to js/ndnProtocol/modules/ndn-js.jsm
index 9d39d12..928467f 100644
--- a/js/ccnxProtocol/modules/ndn-js.jsm
+++ b/js/ndnProtocol/modules/ndn-js.jsm
@@ -96,7 +96,7 @@
  * This class represents the top-level object for communicating with an NDN host.
  */
 
-var LOG = 0;
+var LOG = 3;
 
 /**
  * settings is an associative array with the following defaults:
@@ -575,7 +575,7 @@
         // Make sure the colon came before a '/'.
         var iFirstSlash = name.indexOf('/');
         if (iFirstSlash < 0 || iColon < iFirstSlash)
-            // Omit the leading protocol such as ccnx:
+            // Omit the leading protocol such as ndn:
             name = name.substr(iColon + 1, name.length - iColon - 1).trim();
     }
     
@@ -682,7 +682,7 @@
 	return this.components.push(result);
 };
 
-// Return the escaped name string according to "CCNx URI Scheme".  Does not include "ccnx:".
+// Return the escaped name string according to "CCNx URI Scheme".
 Name.prototype.to_uri = function() {	
 	var result = "";
 	
@@ -1958,7 +1958,6 @@
 
 /**
  * Used by NetworkObject to decode the object from a network stream.
- * @see org.ccnx.ccn.impl.encoding.XMLEncodable
  */
 FaceInstance.prototype.from_ccnb = function(//XMLDecoder 
 	decoder) {
@@ -2030,7 +2029,6 @@
 
 /**
  * Used by NetworkObject to encode the object to a network stream.
- * @see org.ccnx.ccn.impl.encoding.XMLEncodable
  */
 FaceInstance.prototype.to_ccnb = function(//XMLEncoder
 	encoder){
@@ -2143,7 +2141,6 @@
 
 		/**
 		 * Used by NetworkObject to encode the object to a network stream.
-		 * @see org.ccnx.ccn.impl.encoding.XMLEncodable
 		 */
 ForwardingEntry.prototype.to_ccnb =function(
 	//XMLEncoder 
@@ -4814,7 +4811,7 @@
 var KeyManager = function KeyManager(){
 
 	
-//Certificate from CCNx
+//Certificate
 
 this.certificate = 'MIIBmzCCAQQCCQC32FyQa61S7jANBgkqhkiG9w0BAQUFADASMRAwDgYDVQQDEwd'+
 
@@ -4837,7 +4834,7 @@
 
 //this.publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhfTCn2CirG4QLF1QtyvYgev0iHghrKmDRbLf1REi6nz8IvNCZ2yHdFip3nmGqie7lVNOkfeIwvHrFkNUkBnw4mLum9dxDYLhF7aSMvZzxJqcjRF8OGVLXMlp1+vVWFE+amK9xhrAnhoW44sCL6ocXG03uWFwYKClbU5XrShd3nwIDAQAB';
 this.publicKey ='30819F300D06092A864886F70D010101050003818D0030818902818100E17D30A7D828AB1B840B17542DCAF6207AFD221E086B2A60D16CB7F54448BA9F3F08BCD099DB21DD162A779E61AA89EEE554D3A47DE230BC7AC590D524067C3898BBA6F5DC4360B845EDA48CBD9CF126A723445F0E1952D7325A75FAF556144F9A98AF7186B0278685B8E2C08BEA87171B4DEE585C1828295B5395EB4A17779F0203010001';
-//Private Key from CCNx
+//Private Key
 
 this.privateKey ='MIICXQIBAAKBgQDhfTCn2CirG4QLF1QtyvYgev0iHghrKmDRbLf1REi6nz8IvNCZ2yHdFip3nmGqie7lVNOkfeIwvHrFkNUkBnw4mLum9dxDYLhF7aSMvZzxJqcjRF8OGVLXMlp1+vVWFE+amK9xhrAnhoW44sCL6ocXG03uWFwYKClbU5XrShd3nwIDAQABAoGAGkv6T6jC3WmhFZYL6CdCWvlc6gysmKrhjarrLTxgavtFY6R5g2ft5BXAsCCVbUkWxkIFSKqxpVNl0gKZCNGEzPDN6mHJOQI/h0rlxNIHAuGfoAbCzALnqmyZivhJAPGijAyKuU9tczsst5+Kpn+bn7ehzHQuj7iwJonS5WbojqECQQD851K8TpW2GrRizNgG4dx6orZxAaon/Jnl8lS7soXhllQty7qG+oDfzznmdMsiznCqEABzHUUKOVGE9RWPN3aRAkEA5D/w9N55d0ibnChFJlc8cUAoaqH+w+U3oQP2Lb6AZHJpLptN4y4b/uf5d4wYU5/i/gC7SSBH3wFhh9bjRLUDLwJAVOx8vN0Kqt7myfKNbCo19jxjVSlA8TKCn1Oznl/BU1I+rC4oUaEW25DjmX6IpAR8kq7S59ThVSCQPjxqY/A08QJBAIRaF2zGPITQk3r/VumemCvLWiRK/yG0noc9dtibqHOWbCtcXtOm/xDWjq+lis2i3ssOvYrvrv0/HcDY+Dv1An0CQQCLJtMsfSg4kvG/FRY5UMhtMuwo8ovYcMXt4Xv/LWaMhndD67b2UGawQCRqr5ghRTABWdDD/HuuMBjrkPsX0861';
 
diff --git a/js/security/KeyManager.js b/js/security/KeyManager.js
index 8b4e2dc..2a95114 100644
--- a/js/security/KeyManager.js
+++ b/js/security/KeyManager.js
@@ -6,7 +6,7 @@
 var KeyManager = function KeyManager(){
 
 	
-//Certificate from CCNx
+//Certificate
 
 this.certificate = 'MIIBmzCCAQQCCQC32FyQa61S7jANBgkqhkiG9w0BAQUFADASMRAwDgYDVQQDEwd'+
 
@@ -29,7 +29,7 @@
 
 //this.publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhfTCn2CirG4QLF1QtyvYgev0iHghrKmDRbLf1REi6nz8IvNCZ2yHdFip3nmGqie7lVNOkfeIwvHrFkNUkBnw4mLum9dxDYLhF7aSMvZzxJqcjRF8OGVLXMlp1+vVWFE+amK9xhrAnhoW44sCL6ocXG03uWFwYKClbU5XrShd3nwIDAQAB';
 this.publicKey ='30819F300D06092A864886F70D010101050003818D0030818902818100E17D30A7D828AB1B840B17542DCAF6207AFD221E086B2A60D16CB7F54448BA9F3F08BCD099DB21DD162A779E61AA89EEE554D3A47DE230BC7AC590D524067C3898BBA6F5DC4360B845EDA48CBD9CF126A723445F0E1952D7325A75FAF556144F9A98AF7186B0278685B8E2C08BEA87171B4DEE585C1828295B5395EB4A17779F0203010001';
-//Private Key from CCNx
+//Private Key
 
 this.privateKey ='MIICXQIBAAKBgQDhfTCn2CirG4QLF1QtyvYgev0iHghrKmDRbLf1REi6nz8IvNCZ2yHdFip3nmGqie7lVNOkfeIwvHrFkNUkBnw4mLum9dxDYLhF7aSMvZzxJqcjRF8OGVLXMlp1+vVWFE+amK9xhrAnhoW44sCL6ocXG03uWFwYKClbU5XrShd3nwIDAQABAoGAGkv6T6jC3WmhFZYL6CdCWvlc6gysmKrhjarrLTxgavtFY6R5g2ft5BXAsCCVbUkWxkIFSKqxpVNl0gKZCNGEzPDN6mHJOQI/h0rlxNIHAuGfoAbCzALnqmyZivhJAPGijAyKuU9tczsst5+Kpn+bn7ehzHQuj7iwJonS5WbojqECQQD851K8TpW2GrRizNgG4dx6orZxAaon/Jnl8lS7soXhllQty7qG+oDfzznmdMsiznCqEABzHUUKOVGE9RWPN3aRAkEA5D/w9N55d0ibnChFJlc8cUAoaqH+w+U3oQP2Lb6AZHJpLptN4y4b/uf5d4wYU5/i/gC7SSBH3wFhh9bjRLUDLwJAVOx8vN0Kqt7myfKNbCo19jxjVSlA8TKCn1Oznl/BU1I+rC4oUaEW25DjmX6IpAR8kq7S59ThVSCQPjxqY/A08QJBAIRaF2zGPITQk3r/VumemCvLWiRK/yG0noc9dtibqHOWbCtcXtOm/xDWjq+lis2i3ssOvYrvrv0/HcDY+Dv1An0CQQCLJtMsfSg4kvG/FRY5UMhtMuwo8ovYcMXt4Xv/LWaMhndD67b2UGawQCRqr5ghRTABWdDD/HuuMBjrkPsX0861';
 
diff --git a/js/testing/test-decode-Interest+Forwarding+Entry.html b/js/testing/test-decode-Interest+Forwarding+Entry.html
index 5549b17..fe30aa3 100644
--- a/js/testing/test-decode-Interest+Forwarding+Entry.html
+++ b/js/testing/test-decode-Interest+Forwarding+Entry.html
@@ -402,8 +402,6 @@
 	</form>
 	<button onclick="decode()">Decode</button>
 
-		<!-- p id="result-old-from-ccnx">01d2f2faa563636e7800fa0285e0a01e093968f9740ce7f4361babf5bb05a4e55aaca5e58f73eddeb8e013aa8f00fabd73656c6672656700fa1bf5048202aa03b208854a18988c72aee624da28e2e1acbccb209b8e89429041985521ed68f95a1c546872fba3d854b1377dc249b6d8ec5935e5069256c97a7f6d8a62e86222ccd2cfe5097aed3fe5ede6732ce191a8680d78e39d0c5058a2b7bb0f0687994e9f045de346b66c46498547a08da1f2f0cdfafba3afdfe7107931935ede79040137ba94a90000f20001a203e202851a4860caa4991e829bcdc9429fb711d52440968d23560726606050bf147acffc0002bab504fcb3f03aa40001e201da0a9530819f300d06092a864886f70d010101050003818d00308189028181008ed27580e3d1c4c67672208665133a1ba12d8ebf5cad8e054571926b3ff0782a04c71703384021a6cefb6616b66cbd8a679b761d69d6373a851546e26f7105510b4c23be9a3c7f2e652e100ecc1471855730659f1477ce4e8504ad1fd8f44116baaeae2ff67eec33abba790157a79bf5039e5a528a471d9d67c94e70117ed7490203010001000000019a0585058a04cabe73656c6672656700f2faad726f63636f000003e20285e0a01e093968f9740ce7f4361babf5bb05a4e55aaca5e58f73eddeb8e013aa8f0004fa8e330003d2d63231343734383336343700000000000002d28e310000</p-->
-		
 		<p id="result">01d2f2faa563636e7800fa0285e0a01e093968f9740ce7f4361babf5bb05a4e55aaca5e58f73eddeb8e013aa8f00facd70726566697872656700fa29ad048202aa03b208854ddbf69779cdf4ef74be99474478c8bc3ca0873e0ffa1fa60120aa276db122b83404e595a8a3caeaf09630276658ba4e7beaadb4b91a8cc58e19ac4a42289507ed8d609aa9bef61a5a507f349c83d2944b8c16fecfd90d4a40ddb8687592c0a57517564235b2e359db54f51a37e1ac39e518a2196e3ffda7eb2fb301f3c404dd0000f20001a203e20285ef7c4f5d4743a8b8586ea2e741b7fc39d1dc0dbe1b1930e787cfd1d833ea7a610002bab504fce9e253d70001e2018219fd3082019b30820104020900b7d85c906bad52ee300d06092a864886f70d010105050030123110300e060355040313076178656c636476301e170d3132303432383233343433375a170d3132303532383233343433375a30123110300e060355040313076178656c63647630819f300d06092a864886f70d010101050003818d0030818902818100e17d30a7d828ab1b840b17542dcaf6207afd221e086b2a60d16cb7f54448ba9f3f08bcd099db21dd162a779e61aa89eee554d3a47de230bc7ac590d524067c3898bba6f5dc4360b845eda48cbd9cf126a723445f0e1952d7325a75faf556144f9a98af7186b0278685b8e2c08bea87171b4dee585c1828295b5395eb4a17779f0203010001300d06092a864886f70d010105050003818100cb3ab0357d7cd2ae97ed501e51a3a0e2817d418e47fb17906477af61495a7e8d8789141065b082d001f4b15193d0b43fb661cde20a6498372c6abbd3dcb9f0d12659ef07b3c6dbdf8bdf2f65477eed7adcd457d793b1c27badda7c5ade80ce95b7d8827fe78c8a35f3fb4ba648a081be2cfe84231abab3c2b531746df2e0492b000000019a02d5058a04cabe73656c6672656700f2faa56d656b69000004fa8e330003d2d63231343734383336343700000000000002d28e310000</p>
 
 </body>
diff --git a/js/testing/test-encode-decode-ContentObject.html b/js/testing/test-encode-decode-ContentObject.html
index 8f75ebe..04b1a59 100644
--- a/js/testing/test-encode-decode-ContentObject.html
+++ b/js/testing/test-encode-decode-ContentObject.html
@@ -56,7 +56,7 @@
 		
 		Please Enter a Content Name:<br />
 		
-		<input id="contentname" type="text" name="CONTENTNAME" value="/PARC/abc" /> 
+		<input id="contentname" type="text" name="CONTENTNAME" value="/ndn/abc" /> 
 		
 		<br />Please Enter the Content:<br />
 		
diff --git a/js/testing/test-encode-decode-Interest.html b/js/testing/test-encode-decode-Interest.html
index f95ac16..342e92d 100644
--- a/js/testing/test-encode-decode-Interest.html
+++ b/js/testing/test-encode-decode-Interest.html
@@ -108,7 +108,7 @@
 		
 		Please Enter an Interest:<br />
 		
-		<input id="interest" type="text" name="INTEREST" value="/PARC/abc" /> 
+		<input id="interest" type="text" name="INTEREST" value="/ndn/abc" /> 
 		
 	</form>
 	<button onclick="encode()">Encode</button>
diff --git a/js/testing/test-image-parsing.html b/js/testing/test-image-parsing.html
index 749b6fc..910b09b 100644
--- a/js/testing/test-image-parsing.html
+++ b/js/testing/test-image-parsing.html
@@ -82,7 +82,7 @@
 			3OK+u3ivTSj3zwjtpudY5Xo=
 			-----END CERTIFICATE-----"></input>
 
-		Please Enter a Text to sign:<br /><input id="contentname" type="text" name="CONTENTNAME" value="/PARC/CCNX" /> <br />
+		Please Enter a Text to sign:<br /><input id="contentname" type="text" name="CONTENTNAME" value="/ndn/abc" /> <br />
 	
 	</form>
 	<button onclick="sign()">Encode</button>
diff --git a/js/testing/test-interest-matches-name.html b/js/testing/test-interest-matches-name.html
index 99e7d2a..eaa4282 100644
--- a/js/testing/test-interest-matches-name.html
+++ b/js/testing/test-interest-matches-name.html
@@ -27,10 +27,10 @@
 	<form>
 		
 		Please enter the name of an interest:<br />		
-		<input id="interest" type="text" name="INTEREST" value="/ndn/ucla.edu" /> <br/>
+		<input id="interest" type="text" name="INTEREST" value="//domain.com/ndn/ucla.edu" /> <br/>
 		
 		Please enter a name to check if the interest matches the name:<br />		
-		<input id="nameToCheck" type="text" name="NAME_TO_CHECK" value="/ndn/ucla.edu" /> <br/>
+		<input id="nameToCheck" type="text" name="NAME_TO_CHECK" value="/ndn/./ucla.edu/extra" /> <br/>
 		
 	</form>
 	<button onclick="check()">Check</button>
diff --git a/js/testing/test-sha256.html b/js/testing/test-sha256.html
index 09987c1..f695f08 100644
--- a/js/testing/test-sha256.html
+++ b/js/testing/test-sha256.html
@@ -35,7 +35,7 @@
 		
 
 
-		Please Enter Text to Hash:<br /><input id="contentname" type="text" name="CONTENTNAME" value="/PARC/abc" /> <br />
+		Please Enter Text to Hash:<br /><input id="contentname" type="text" name="CONTENTNAME" value="/ndn/abc" /> <br />
 	
 	</form>
 	<button onclick="hash()">Hash</button>
diff --git a/js/testing/test-signature-string.html b/js/testing/test-signature-string.html
index 58fb451..26a1931 100644
--- a/js/testing/test-signature-string.html
+++ b/js/testing/test-signature-string.html
@@ -82,7 +82,7 @@
 			3OK+u3ivTSj3zwjtpudY5Xo=
 			-----END CERTIFICATE-----"></input>
 
-		Please Enter a Text to sign:<br /><input id="contentname" type="text" name="CONTENTNAME" value="/PARC/CCNX" /> <br />
+		Please Enter a Text to sign:<br /><input id="contentname" type="text" name="CONTENTNAME" value="/ndn/abc" /> <br />
 	
 	</form>
 	<button onclick="sign()">Sign</button>
