diff --git a/java/JavaSocketBridge.java b/java/JavaSocketBridge.java
index 988f758..cd5648e 100644
--- a/java/JavaSocketBridge.java
+++ b/java/JavaSocketBridge.java
@@ -1,4 +1,5 @@
 // @author: ucla-cs
+// See COPYING for copyright and distribution information.
 
 
 import java.applet.*;
diff --git a/js/ContentObject.js b/js/ContentObject.js
index 941f032..cf7bfdb 100644
--- a/js/ContentObject.js
+++ b/js/ContentObject.js
@@ -1,5 +1,6 @@
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents ContentObject Objects
  */
 var ContentObject = function ContentObject(_name,_signedInfo,_content,_signature){
diff --git a/js/FaceInstance.js b/js/FaceInstance.js
index f19d523..f5fdd08 100644
--- a/js/FaceInstance.js
+++ b/js/FaceInstance.js
@@ -1,5 +1,6 @@
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Face Instances
  */
 
diff --git a/js/ForwardingEntry.js b/js/ForwardingEntry.js
index f0314d7..467a0ed 100644
--- a/js/ForwardingEntry.js
+++ b/js/ForwardingEntry.js
@@ -1,5 +1,6 @@
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Forwarding Entries
  */
 
diff --git a/js/Interest.js b/js/Interest.js
index a04c463..baa7f33 100644
--- a/js/Interest.js
+++ b/js/Interest.js
@@ -1,5 +1,6 @@
  /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Interest Objects
  */
 
diff --git a/js/Key.js b/js/Key.js
index d495fe3..072194b 100644
--- a/js/Key.js
+++ b/js/Key.js
@@ -1,5 +1,6 @@
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Key Objects
  */
 
diff --git a/js/NDN.js b/js/NDN.js
index 2acb031..2b32df8 100644
--- a/js/NDN.js
+++ b/js/NDN.js
@@ -1,4 +1,8 @@
-
+/*
+ * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
+ * This class represents the top-level object for communicating with an NDN host.
+ */
 
 /**
  * host is default '127.0.0.1'.
diff --git a/js/NDNSocketTransportService.js b/js/NDNSocketTransportService.js
index c27d416..4af9f17 100644
--- a/js/NDNSocketTransportService.js
+++ b/js/NDNSocketTransportService.js
@@ -1,5 +1,8 @@
-/* Implement getAsync and putAsync used by NDN using nsISocketTransportService.
-   This is used inside Firefox XPCOM modules.
+/* 
+ * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
+ * Implement getAsync and putAsync used by NDN using nsISocketTransportService.
+ * This is used inside Firefox XPCOM modules.
  */
 
 // Assume already imported the following:
diff --git a/js/Name.js b/js/Name.js
index 69e3098..aa8b612 100644
--- a/js/Name.js
+++ b/js/Name.js
@@ -1,5 +1,6 @@
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents a Name
  */
  
diff --git a/js/PublisherID.js b/js/PublisherID.js
index e418d57..868e13d 100644
--- a/js/PublisherID.js
+++ b/js/PublisherID.js
@@ -1,5 +1,6 @@
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Publisher and PublisherType Objects
  */
 
diff --git a/js/PublisherPublicKeyDigest.js b/js/PublisherPublicKeyDigest.js
index 6cae7f6..30f9549 100644
--- a/js/PublisherPublicKeyDigest.js
+++ b/js/PublisherPublicKeyDigest.js
@@ -1,5 +1,6 @@
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents PublisherPublicKeyDigest Objects
  */
 var PublisherPublicKeyDigest = function PublisherPublicKeyDigest(_pkd){ 
diff --git a/js/ccnxProtocol.xpi b/js/ccnxProtocol.xpi
index 2d7d41d..083eeec 100644
--- a/js/ccnxProtocol.xpi
+++ b/js/ccnxProtocol.xpi
Binary files differ
diff --git a/js/ccnxProtocol/components/ccnxProtocolService.js b/js/ccnxProtocol/components/ccnxProtocolService.js
index d3eccb8..2bf369b 100644
--- a/js/ccnxProtocol/components/ccnxProtocolService.js
+++ b/js/ccnxProtocol/components/ccnxProtocolService.js
@@ -1,6 +1,7 @@
 /*
  * @author: ucla-cs
- * This is the ccnx protocol handler.
+ * See COPYING for copyright and distribution information.
+ * This is the ccnx protocol handler for NDN.
  * Protocol handling code derived from http://mike.kaply.com/2011/01/18/writing-a-firefox-protocol-handler/
  */
 
diff --git a/js/ccnxProtocol/modules/ContentChannel.jsm b/js/ccnxProtocol/modules/ContentChannel.jsm
index 2dfb1ed..73a9606 100644
--- a/js/ccnxProtocol/modules/ContentChannel.jsm
+++ b/js/ccnxProtocol/modules/ContentChannel.jsm
@@ -1,3 +1,8 @@
+/*
+ * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
+ */
+
 var EXPORTED_SYMBOLS = ["ContentChannel"];
 
 const Cc = Components.classes;
diff --git a/js/ccnxProtocol/modules/ndn-js-header.txt b/js/ccnxProtocol/modules/ndn-js-header.txt
index cc703e8..63c037c 100644
--- a/js/ccnxProtocol/modules/ndn-js-header.txt
+++ b/js/ccnxProtocol/modules/ndn-js-header.txt
@@ -1,5 +1,8 @@
-/** This file is created by running make-ndn-js.jsm.sh in this directory.
-    It concatenates ndn-js-header.txt with all the ndn-js source files.
+/* This file is created by running make-ndn-js.jsm.sh in this directory.
+ * It concatenates ndn-js-header.txt with all the ndn-js source files to
+ *   make ndn-js.jsm .
+ * author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
 
 var EXPORTED_SYMBOLS = ["NDN", "DataUtils", "readAllFromSocket"];
diff --git a/js/ccnxProtocol/modules/ndn-js.jsm b/js/ccnxProtocol/modules/ndn-js.jsm
index 32b95f2..eb1ba3a 100644
--- a/js/ccnxProtocol/modules/ndn-js.jsm
+++ b/js/ccnxProtocol/modules/ndn-js.jsm
@@ -1,5 +1,8 @@
-/** This file is created by running make-ndn-js.jsm.sh in this directory.
-    It concatenates ndn-js-header.txt with all the ndn-js source files.
+/* This file is created by running make-ndn-js.jsm.sh in this directory.
+ * It concatenates ndn-js-header.txt with all the ndn-js source files to
+ *   make ndn-js.jsm .
+ * author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
 
 var EXPORTED_SYMBOLS = ["NDN", "DataUtils", "readAllFromSocket"];
@@ -22,7 +25,11 @@
     }
 };
 
-
+/*
+ * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
+ * This class represents the top-level object for communicating with an NDN host.
+ */
 
 /**
  * host is default '127.0.0.1'.
@@ -179,8 +186,11 @@
 	
 
 }
-/* Implement getAsync and putAsync used by NDN using nsISocketTransportService.
-   This is used inside Firefox XPCOM modules.
+/* 
+ * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
+ * Implement getAsync and putAsync used by NDN using nsISocketTransportService.
+ * This is used inside Firefox XPCOM modules.
  */
 
 // Assume already imported the following:
@@ -301,7 +311,8 @@
 
 /*
  * @author: ucla-cs
- * THis class contains all CCNx tags
+ * See COPYING for copyright and distribution information.
+ * This class contains all CCNx tags
  */
 
 
@@ -457,6 +468,7 @@
 
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents CCNTime Objects
  */
 
@@ -560,6 +572,7 @@
 
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents a Name
  */
  
@@ -670,6 +683,7 @@
 
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents ContentObject Objects
  */
 var ContentObject = function ContentObject(_name,_signedInfo,_content,_signature){
@@ -1244,6 +1258,7 @@
 
  /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Interest Objects
  */
 
@@ -1473,6 +1488,7 @@
 
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Key Objects
  */
 
@@ -1668,6 +1684,7 @@
 
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Publisher and PublisherType Objects
  */
 
@@ -1764,6 +1781,7 @@
 
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents PublisherPublicKeyDigest Objects
  */
 var PublisherPublicKeyDigest = function PublisherPublicKeyDigest(_pkd){ 
@@ -1816,6 +1834,7 @@
 
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Face Instances
  */
 
@@ -1977,6 +1996,7 @@
 
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents Forwarding Entries
  */
 
@@ -2080,6 +2100,7 @@
  * This class is used to encode and decode binary elements ( blog, type/value pairs)
  * 
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
 
 var XML_EXT = 0x00; 
@@ -2523,6 +2544,7 @@
  * This class is used to encode and decode binary elements ( blog, type/value pairs)
  * 
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
 var XML_EXT = 0x00; 
 	
@@ -2794,6 +2816,7 @@
  * This class is used to encode and decode binary elements ( blog, type/value pairs)
  * 
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
 
 var XML_EXT = 0x00; 
@@ -3579,10 +3602,10 @@
 		return strElementText;
 };
 
-
 /*
  * This class contains utilities to help parse the data
  * author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
  
 var DataUtils = function DataUtils(){
@@ -3993,9 +4016,11 @@
 
     return true;
 }
-
-
-
+/*
+ * This file contains utilities to help encode and decode NDN objects.
+ * author: ucla-cs
+ * See COPYING for copyright and distribution information.
+ */
 
 function encodeToHexInterest(interest){
 	
@@ -4347,7 +4372,10 @@
     return output;
 }
 
-
+/*
+ * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
+ */
 
 var KeyManager = function KeyManager(){
 
diff --git a/js/encoding/BinaryXMLCodec.js b/js/encoding/BinaryXMLCodec.js
index e6b8fef..87d36ec 100644
--- a/js/encoding/BinaryXMLCodec.js
+++ b/js/encoding/BinaryXMLCodec.js
@@ -2,6 +2,7 @@
  * This class is used to encode and decode binary elements ( blog, type/value pairs)
  * 
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
 var XML_EXT = 0x00; 
 	
diff --git a/js/encoding/BinaryXMLDecoder.js b/js/encoding/BinaryXMLDecoder.js
index 41a4e45..23276cf 100644
--- a/js/encoding/BinaryXMLDecoder.js
+++ b/js/encoding/BinaryXMLDecoder.js
@@ -2,6 +2,7 @@
  * This class is used to encode and decode binary elements ( blog, type/value pairs)
  * 
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
 
 var XML_EXT = 0x00; 
diff --git a/js/encoding/BinaryXMLEncoder.js b/js/encoding/BinaryXMLEncoder.js
index 7404802..c717566 100644
--- a/js/encoding/BinaryXMLEncoder.js
+++ b/js/encoding/BinaryXMLEncoder.js
@@ -2,6 +2,7 @@
  * This class is used to encode and decode binary elements ( blog, type/value pairs)
  * 
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
 
 var XML_EXT = 0x00; 
diff --git a/js/encoding/DataUtils.js b/js/encoding/DataUtils.js
index e6ae2fc..5a9d706 100644
--- a/js/encoding/DataUtils.js
+++ b/js/encoding/DataUtils.js
@@ -1,7 +1,7 @@
-
 /*
  * This class contains utilities to help parse the data
  * author: ucla-cs
+ * See COPYING for copyright and distribution information.
  */
  
 var DataUtils = function DataUtils(){
diff --git a/js/encoding/EncodingUtils.js b/js/encoding/EncodingUtils.js
index d90a240..69d1aec 100644
--- a/js/encoding/EncodingUtils.js
+++ b/js/encoding/EncodingUtils.js
@@ -1,6 +1,8 @@
-
-
-
+/*
+ * This file contains utilities to help encode and decode NDN objects.
+ * author: ucla-cs
+ * See COPYING for copyright and distribution information.
+ */
 
 function encodeToHexInterest(interest){
 	
diff --git a/js/encoding/TextXMLCodec.js b/js/encoding/TextXMLCodec.js
index 37cbe04..b8d5662 100644
--- a/js/encoding/TextXMLCodec.js
+++ b/js/encoding/TextXMLCodec.js
@@ -1,6 +1,7 @@
 //TODO INCOMPLETE
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * 
  * Encodes CCN object into xml tags
  */
diff --git a/js/encoding/TextXMLDecoder.js b/js/encoding/TextXMLDecoder.js
index 006ce83..54bf2d7 100644
--- a/js/encoding/TextXMLDecoder.js
+++ b/js/encoding/TextXMLDecoder.js
@@ -2,6 +2,7 @@
 
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * 
  * Decodes CCN object into xml
  */
diff --git a/js/encoding/TextXMLEncoder.js b/js/encoding/TextXMLEncoder.js
index 2c8a828..b22aa0c 100644
--- a/js/encoding/TextXMLEncoder.js
+++ b/js/encoding/TextXMLEncoder.js
@@ -1,6 +1,7 @@
 //TODO INCOMPLETE
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * 
  * Encodes CCN object into xml
  */
diff --git a/js/java_socket_bridge.js b/js/java_socket_bridge.js
index 5f617b6..62f43b5 100644
--- a/js/java_socket_bridge.js
+++ b/js/java_socket_bridge.js
@@ -1,6 +1,7 @@
 /*
  * @author: ucla-cs
- * This class represents Interest Objects
+ * See COPYING for copyright and distribution information.
+ * This file provides access to the JavaSocketBridge applet.
  */
 
 
diff --git a/js/security/KeyManager.js b/js/security/KeyManager.js
index e2973e2..cb051eb 100644
--- a/js/security/KeyManager.js
+++ b/js/security/KeyManager.js
@@ -1,4 +1,7 @@
-
+/*
+ * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
+ */
 
 var KeyManager = function KeyManager(){
 
diff --git a/js/util/CCNProtocolDTags.js b/js/util/CCNProtocolDTags.js
index 36ea03d..6dbae96 100644
--- a/js/util/CCNProtocolDTags.js
+++ b/js/util/CCNProtocolDTags.js
@@ -1,6 +1,7 @@
 /*
  * @author: ucla-cs
- * THis class contains all CCNx tags
+ * See COPYING for copyright and distribution information.
+ * This class contains all CCNx tags
  */
 
 
diff --git a/js/util/CCNTime.js b/js/util/CCNTime.js
index d4a8098..91debd4 100644
--- a/js/util/CCNTime.js
+++ b/js/util/CCNTime.js
@@ -1,5 +1,6 @@
 /*
  * @author: ucla-cs
+ * See COPYING for copyright and distribution information.
  * This class represents CCNTime Objects
  */
 
