first commit
diff --git a/src-old/ContentObject.js b/src-old/ContentObject.js
new file mode 100644
index 0000000..0802479
--- /dev/null
+++ b/src-old/ContentObject.js
@@ -0,0 +1,12 @@
+// JavaScript Document
+
+var ContentObject = function ContentObject(_Signature,_Name,_SignedInfo,_Content){
+	
+	this.Signature = _Signature;
+	this.Name = _Name;
+	this.SignedInfo = _SignedInfo;
+	this.Content=_Content;
+	
+};
+
+exports.ContentObject = ContentObject;
diff --git a/src-old/ContentObjectDecoder.js b/src-old/ContentObjectDecoder.js
new file mode 100644
index 0000000..83e5aee
--- /dev/null
+++ b/src-old/ContentObjectDecoder.js
@@ -0,0 +1,214 @@
+// JavaScript Document
+/*
+	@author: Meki Cherkaoui
+*/
+var DTAGS = require('./TAG').d;
+var TT = require('./TAG').tt;
+
+
+var ContentObjectEncoder = function ContentObjectEncoder(){
+	
+	
+};
+
+
+/*
+	TT bits specify the type of nodes
+	
+*/
+var CCN_TT_BITS=3;
+var CCN_TT_MASK=((1 << CCN_TT_BITS) - 1);
+var CCN_MAX_TINY=((1 << (7-CCN_TT_BITS)) - 1);
+var CCN_TT_HBIT=((1 << 7));
+
+Encoder.prototype.encodeContentObject = function(_ContentObject){
+	
+	//var slit = function splitNumber(number){
+	//};
+	var i = 0;
+	
+	var addToBuffer = function addToBuffer(buffer,number,tt){
+		
+		
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~require('./TAG').d.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		var index = 1;
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT |require('./TAG').d.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+	};
+	//NOTE NUMBETR= SIZE
+	var addToBufferData = function addToBuffer(buffer,data,tt){
+		
+		var number = sizeof(data);
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~require('./TAG').d.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT |require('./TAG').d.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+		for(i=0;i<10;i++){
+			buffer[index+i] = data[i];
+		}
+		
+	};
+	
+	//NOTE NUMBETR= SIZE
+	var addName = function addToBuffer(buffer,name){
+		
+		for(i=0;i<name.size;i++){
+			tt = require('./TAG').tt.CCN_BLOB ;
+			addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+			addCloseTag(buffer);
+		}
+		
+	};
+	
+	
+	var addCloseTag = function addCloseTag(buffer){
+		var tag = DTAGS.CCN_CLOSE;
+		buffer.write(tag);
+	}; 
+	
+	var buffer = new Buffer(1000);
+	 
+	var tag = DTAGS.CCN_DTAG_ContentObject;
+	var tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_Signature;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_SignatureBits;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tt = TT.CCN_BLOB ;
+	addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_Name;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+
+	addName(buffer,_ContentObject.moName,tt);
+
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_SignedInfo;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+	tag = DTAGS.CCN_DTAG_PublisherPublicKeyDigest;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msPublisherPublicKeyDigest ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Timestamp;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msTimestamp ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_KeyLocator;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tag = DTAGS.CCN_DTAG_key;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msKeyLocator ,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Content;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.msContent,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+
+}
+
+
+Encoder.prototype.encodeContentObjectToFile = function(_filename){
+	
+	
+	var content = "hello world";
+	
+	var name = new require('./Name').Name(['hello']);
+	
+	var sigInfo = new require('./SignatureInfo').SignatureInfo(new Buffer('h7exThsbBBViA/knAnWd2lMdaAgW/lcI6EIAK6ln4Ut8/owZ0tobVQ4YJ3lHkl3qwzldAqLT8RayMU8cxpqrT6sa/nHFatbiObj2GrAAKbsJRSiV/ESzeVXPUHdbNJ75iDc5wjqvC4aJL8tGJt8vAOjJ7fy4MWD+mgFBYqn+1bw='));
+	
+	var sig = new require('./Signature').Signature(new Buffer("IEh0BFqfrJjrt9+txLvRqxWm5AZTScbIOoRghE6rMYU=",'base64'), new Buffer('BPMrnKOi','base64'), new Buffer('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9lWVVnBeVwEml703J0byLmBtmCX6iU/XQ9Q8aHfkIrE5pp5fa3SwFkJRKboSeH7tzccU9/dvngCZW4dX0SbhTDZx9qNar69kOBhJNkn8vbFch8dDknn9qEWfK+WDZb/Wvqi0lZzN3cqlEyObOuFmyWiMdnsqHNXT/mCJchT847wIDAQAB','base64'));
+
+	sig.generateSignature(name,sigInfo,content);
+	
+	var co = new require('./ContentObject').ContentObject(sig,name,sigInfo,content);
+	
+	var buffer = this.encodeContentObject(co);
+	
+	fs.writeFile(_filename);
+	
+	
+}
+
+
+var co = new ContentObjectEncoder();
+
+
+var file = ContentObjectEncoder.decodeFile('/Users/eastman/Desktop/CCN/ccnx-0.5.0rc1/hello');
+
+
diff --git a/src-old/ContentObjectEncoder.js b/src-old/ContentObjectEncoder.js
new file mode 100644
index 0000000..ae10a5f
--- /dev/null
+++ b/src-old/ContentObjectEncoder.js
@@ -0,0 +1,260 @@
+// JavaScript Document
+/*
+	@author: Meki Cherkaoui
+*/
+var DTAGS = require('./TAG').d;
+var TT = require('./TAG').tt;
+
+
+var ContentObjectEncoder = function ContentObjectEncoder(){
+	
+	
+};
+
+
+/*
+	TT bits specify the type of nodes
+	
+*/
+var CCN_TT_BITS=3;
+var CCN_TT_MASK=((1 << CCN_TT_BITS) - 1);
+var CCN_MAX_TINY=((1 << (7-CCN_TT_BITS)) - 1);
+var CCN_TT_HBIT=((1 << 7));
+
+Encoder.prototype.encodeContentObject = function(_ContentObject){
+	
+	//var slit = function splitNumber(number){
+	//};
+
+	/*
+	 * returns an integer
+	 */
+	var encodeTypeAndVal = function(itype, lvalue, bstream) {
+	        /*
+	        We exploit the fact that encoding is done from the right, so this actually means
+	        there is a deterministic encoding from a long to a Type/Value pair:
+	        
+	        |    0    |    1    |    2    |    3    |    4    |    5    |    6    |    7    |
+	        |ABCD.EFGH|IJKL.MNOP|QRST.UVWX|YZ01.2345|6789.abcd|efgh.ijkl|mnop.qrst|uvwx.yz@#
+	        
+	               60>       53>       46>       39>       32>       25>       18>       11>        4>
+	        |_000.ABCD|_EFG.HIJK|_LMN.OPQR|_STU.VWXY|_Z01.2345|_678.9abc|_defg.hij|_klm.nopq|_rst.uvwx|_yz@#___
+	        
+	        What we want to do is compute the result in MSB order and write it directly
+	        to the channel without any intermediate form.
+	        */
+	   
+	       var bits;
+	       var count = 0;
+	       
+	       // once we start writing bits, we keep writing bits even if they are "0"
+	       var writing = false;
+	       
+	       // a few heuristic to catch the small-bit length patterns
+	       if( value < 0 || value > 15 ) {
+	           int start = 60;
+	           if( 0 <= value ) {
+	        	   if( value < bits_11 )
+	        		   start = 4;
+	        	   else if( value < bits_18 )
+	                   start = 11;
+	               else if( value < bits_32 )
+	                   start = 25;
+	           }
+	           
+	           for( var i = start; i >= 4; i -= 7) {
+	               bits = (int) (value >>> i) & BinaryXMLCodec.XML_REG_VAL_MASK;
+	               if( bits != 0 || writing ) {
+	                   ostream.write(bits);
+	                   count++;
+	                   writing = true;
+	               }
+	           }
+	       }
+	};
+	
+	var addToBuffer = function addToBuffer(buffer,number,tt){
+		
+		
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~require('./TAG').d.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		var index = 1;
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT |require('./TAG').d.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+	};
+	//NOTE NUMBETR= SIZE
+	var addToBufferData = function addToBuffer(buffer,data,tt){
+		
+		var number = sizeof(data);
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~require('./TAG').d.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT |require('./TAG').d.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+		for(i=0;i<10;i++){
+			buffer[index+i] = data[i];
+		}
+		
+	};
+	
+	//NOTE NUMBETR= SIZE
+	var addName = function addToBuffer(buffer,name){
+		
+		for(i=0;i<name.size;i++){
+			tt = require('./TAG').tt.CCN_BLOB ;
+			addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+			addCloseTag(buffer);
+		}
+		
+	};
+	
+	
+	var addCloseTag = function addCloseTag(buffer){
+		var tag = DTAGS.CCN_CLOSE;
+		buffer.write(tag);
+	}; 
+	
+	var buffer = new Buffer(1000);
+	 
+	var tag = DTAGS.CCN_DTAG_ContentObject;
+	var tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_Signature;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_SignatureBits;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tt = TT.CCN_BLOB ;
+	addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_Name;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+
+	addName(buffer,_ContentObject.moName,tt);
+
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_SignedInfo;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+	tag = DTAGS.CCN_DTAG_PublisherPublicKeyDigest;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msPublisherPublicKeyDigest ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Timestamp;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msTimestamp ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_KeyLocator;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tag = DTAGS.CCN_DTAG_key;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msKeyLocator ,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Content;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.msContent,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+
+}
+
+
+Encoder.prototype.encodeContentObjectToFile = function(_filename){
+	
+	
+	var content = "hello world";
+	
+	var name = new require('./Name').Name(['hello']);
+	
+	var sigInfo = new require('./SignatureInfo').SignatureInfo(new Buffer('h7exThsbBBViA/knAnWd2lMdaAgW/lcI6EIAK6ln4Ut8/owZ0tobVQ4YJ3lHkl3qwzldAqLT8RayMU8cxpqrT6sa/nHFatbiObj2GrAAKbsJRSiV/ESzeVXPUHdbNJ75iDc5wjqvC4aJL8tGJt8vAOjJ7fy4MWD+mgFBYqn+1bw='));
+	
+	var sig = new require('./Signature').Signature(new Buffer("IEh0BFqfrJjrt9+txLvRqxWm5AZTScbIOoRghE6rMYU=",'base64'), new Buffer('BPMrnKOi','base64'), new Buffer('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9lWVVnBeVwEml703J0byLmBtmCX6iU/XQ9Q8aHfkIrE5pp5fa3SwFkJRKboSeH7tzccU9/dvngCZW4dX0SbhTDZx9qNar69kOBhJNkn8vbFch8dDknn9qEWfK+WDZb/Wvqi0lZzN3cqlEyObOuFmyWiMdnsqHNXT/mCJchT847wIDAQAB','base64'));
+
+	sig.generateSignature(name,sigInfo,content);
+	
+	var co = new require('./ContentObject').ContentObject(sig,name,sigInfo,content);
+	
+	var buffer = this.encodeContentObject(co);
+	
+	fs.writeFile(_filename);
+	
+	
+}
+
+
+var co = new ContentObjectEncoder();
+
+
+var file = ContentObjectEncoder.decodeFile('/Users/eastman/Desktop/CCN/ccnx-0.5.0rc1/hello');
+
+
diff --git a/src-old/Decoder.js b/src-old/Decoder.js
new file mode 100644
index 0000000..7a59e5e
--- /dev/null
+++ b/src-old/Decoder.js
@@ -0,0 +1,42 @@
+// JavaScript Document
+
+
+var Decoder = function Decoder(){
+	
+	
+	//PRIVATE FUNCTIONS
+	
+
+}
+
+
+//PUBLIC FUNCTIONS
+
+Decoder.prototype.decodeFile = function(filename){
+	var fs = require('fs');
+
+	var file = fs.readFile(filename, function(err,data){
+  		if(err) {
+   		 console.error("Could not open file: %s", err);
+   		 process.exit(1);
+  		}
+		
+		//console.log(data);
+		//console.log(data.toString('binary'));
+		for( i=0;i<data.length ;i++) {
+			var v = data[i];
+			console.log(v.toString(2)+'\n');
+		}
+
+		console.log( require('./TAG.js').d.CCN_DTAG_Any);
+		var a =new Buffer('aGVsbG8gd29ybGQK','base64');
+		console.log(a.toString('base64'));
+
+	});
+}
+
+
+
+var decoder = new Decoder();
+var file = decoder.decodeFile('/Users/eastman/Desktop/CCN/ccnx-0.5.0rc1/hello');
+
diff --git a/src-old/Encoder.js b/src-old/Encoder.js
new file mode 100644
index 0000000..4ced16c
--- /dev/null
+++ b/src-old/Encoder.js
@@ -0,0 +1,208 @@
+// JavaScript Document
+/*
+	Meki Cherkaoui
+*/
+var DTAGS = require('./TAG').d;
+var TT = require('./TAG').tt;
+
+
+var Encoder = function Encoder(){
+	
+	
+};
+/*
+	TT bits specify the type of nodes
+
+*/
+var CCN_TT_BITS=3;
+var CCN_TT_MASK=((1 << CCN_TT_BITS) - 1);
+var CCN_MAX_TINY=((1 << (7-CCN_TT_BITS)) - 1);
+var CCN_TT_HBIT=((1 << 7));
+
+Encoder.prototype.encodeContentObject = function(_ContentObject){
+	
+	//var slit = function splitNumber(number){
+	//};
+	var i = 0;
+	
+	var addToBuffer = function addToBuffer(buffer,number,tt){
+		
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~require('./TAG').d.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		var index = 1;
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT |require('./TAG').d.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+	};
+	//NOTE NUMBETR= SIZE
+	var addToBufferData = function addToBuffer(buffer,data,tt){
+		
+		var number = sizeof(data);
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~require('./TAG').d.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT |require('./TAG').d.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+		for(i=0;i<10;i++){
+			buffer[index+i] = data[i];
+		}
+		
+	};
+	
+	//NOTE NUMBETR= SIZE
+	var addName = function addToBuffer(buffer,name){
+		
+		for(i=0;i<name.size;i++){
+			tt = require('./TAG').tt.CCN_BLOB ;
+			addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+			addCloseTag(buffer);
+		}
+		
+	};
+	
+	
+	var addCloseTag = function addCloseTag(buffer){
+		var tag = DTAGS.CCN_CLOSE;
+		buffer.write(tag);
+	}; 
+	
+	var buffer = new Buffer(1000);
+	 
+	var tag = DTAGS.CCN_DTAG_ContentObject;
+	var tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_Signature;
+	tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_SignatureBits;
+	tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tt = require('./TAG').tt.CCN_BLOB ;
+	addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_Name;
+	tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+
+	addName(buffer,_ContentObject.moName,tt);
+
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_SignedInfo;
+	tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+	tag = DTAGS.CCN_DTAG_PublisherPublicKeyDigest;
+	tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msPublisherPublicKeyDigest ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Timestamp;
+	tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msTimestamp ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_KeyLocator;
+	tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tag = DTAGS.CCN_DTAG_key;
+	tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msKeyLocator ,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Content;
+	tt = require('./TAG').tt.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.msContent,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+
+}
+
+
+Encoder.prototype.encodeContentObjectToFile = function(_filename){
+	
+	
+	var content = "hello world";
+	
+	var name = new require('./Name').Name(['hello']);
+	
+	var sigInfo = new require('./SignatureInfo').SignatureInfo(new Buffer('h7exThsbBBViA/knAnWd2lMdaAgW/lcI6EIAK6ln4Ut8/owZ0tobVQ4YJ3lHkl3qwzldAqLT8RayMU8cxpqrT6sa/nHFatbiObj2GrAAKbsJRSiV/ESzeVXPUHdbNJ75iDc5wjqvC4aJL8tGJt8vAOjJ7fy4MWD+mgFBYqn+1bw='));
+	
+	var sig = new require('./Signature').Signature(new Buffer("IEh0BFqfrJjrt9+txLvRqxWm5AZTScbIOoRghE6rMYU=",'base64'), new Buffer('BPMrnKOi','base64'), new Buffer('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9lWVVnBeVwEml703J0byLmBtmCX6iU/XQ9Q8aHfkIrE5pp5fa3SwFkJRKboSeH7tzccU9/dvngCZW4dX0SbhTDZx9qNar69kOBhJNkn8vbFch8dDknn9qEWfK+WDZb/Wvqi0lZzN3cqlEyObOuFmyWiMdnsqHNXT/mCJchT847wIDAQAB','base64'));
+
+	sig.generateSignature(name,sigInfo,content);
+	
+	var co = new require('./ContentObject').ContentObject(sig,name,sigInfo,content);
+	
+	var buffer = this.encodeContentObject(co);
+	
+	fs.writeFile(_filename);
+	
+	
+}
+
+
+var Encoder = new Encoder();
+
+var file = Encoder.decodeFile('/Users/eastman/Desktop/CCN/ccnx-0.5.0rc1/hello');
+
+
diff --git a/src-old/InterestMessage.js b/src-old/InterestMessage.js
new file mode 100644
index 0000000..90177b4
--- /dev/null
+++ b/src-old/InterestMessage.js
@@ -0,0 +1,17 @@
+// JavaScript Document
+
+var InterestMessage = function InterestMessage(_Name,_MinSuffixComponents,_MaxSuffixComponents,_PublisherPublicKeyDigest, _Exclude, _ChildSelector,_AnswerOriginKind,_Scope,_InterestLifetime,_Nonce){
+	
+	this.Name = _Name;
+	this.MinSuffixComponents = _MinSuffixComponents;
+	this.MaxSuffixComponents = _MaxSuffixComponents;
+	this.PublisherPublicKeyDigest=_PublisherPublicKeyDigest;
+	this.Exclude=_Exclude;
+	this.ChildSelector=_ChildSelector;
+	this.Scope=_Scope;
+	this.InterestLifetime=_InterestLifetime;
+	this.Nonce = _Nonce;
+	
+};
+
+exports.InterestMessage = InterestMessage;
diff --git a/src-old/InterestMessageDecoder.js b/src-old/InterestMessageDecoder.js
new file mode 100644
index 0000000..565c1a9
--- /dev/null
+++ b/src-old/InterestMessageDecoder.js
@@ -0,0 +1,207 @@
+// JavaScript Document
+/*
+	@author: Meki Cherkaoui
+*/
+var DTAGS = require('./TAG').d;
+var TT = require('./TAG').tt;
+
+
+var Encoder = function Encoder(){
+	
+	
+};
+/*
+	TT bits specify the type of nodes
+
+*/
+var CCN_TT_BITS=3;
+var CCN_TT_MASK=((1 << CCN_TT_BITS) - 1);
+var CCN_MAX_TINY=((1 << (7-CCN_TT_BITS)) - 1);
+var CCN_TT_HBIT=((1 << 7));
+
+Encoder.prototype.encodeContentObject = function(_ContentObject){
+	
+	//var slit = function splitNumber(number){
+	//};
+	var i = 0;
+	
+	var addToBuffer = function addToBuffer(buffer,number,tt){
+		
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~require('./TAG').d.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		var index = 1;
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT |require('./TAG').d.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+	};
+	//NOTE NUMBETR= SIZE
+	var addToBufferData = function addToBuffer(buffer,data,tt){
+		
+		var number = sizeof(data);
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~require('./TAG').d.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT |require('./TAG').d.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+		for(i=0;i<10;i++){
+			buffer[index+i] = data[i];
+		}
+		
+	};
+	
+	//NOTE NUMBETR= SIZE
+	var addName = function addToBuffer(buffer,name){
+		
+		for(i=0;i<name.size;i++){
+			tt = require('./TAG').tt.CCN_BLOB ;
+			addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+			addCloseTag(buffer);
+		}
+		
+	};
+	
+	
+	var addCloseTag = function addCloseTag(buffer){
+		var tag = DTAGS.CCN_CLOSE;
+		buffer.write(tag);
+	}; 
+	
+	var buffer = new Buffer(1000);
+	 
+	var tag = DTAGS.CCN_DTAG_ContentObject;
+	var tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_Signature;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_SignatureBits;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tt = TT.CCN_BLOB ;
+	addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_Name;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+
+	addName(buffer,_ContentObject.moName,tt);
+
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_SignedInfo;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+	tag = DTAGS.CCN_DTAG_PublisherPublicKeyDigest;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msPublisherPublicKeyDigest ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Timestamp;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msTimestamp ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_KeyLocator;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tag = DTAGS.CCN_DTAG_key;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msKeyLocator ,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Content;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.msContent,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+
+}
+
+
+Encoder.prototype.encodeContentObjectToFile = function(_filename){
+	
+	
+	var content = "hello world";
+	
+	var name = new require('./Name').Name(['hello']);
+	
+	var sigInfo = new require('./SignatureInfo').SignatureInfo(new Buffer('h7exThsbBBViA/knAnWd2lMdaAgW/lcI6EIAK6ln4Ut8/owZ0tobVQ4YJ3lHkl3qwzldAqLT8RayMU8cxpqrT6sa/nHFatbiObj2GrAAKbsJRSiV/ESzeVXPUHdbNJ75iDc5wjqvC4aJL8tGJt8vAOjJ7fy4MWD+mgFBYqn+1bw='));
+	
+	var sig = new require('./Signature').Signature(new Buffer("IEh0BFqfrJjrt9+txLvRqxWm5AZTScbIOoRghE6rMYU=",'base64'), new Buffer('BPMrnKOi','base64'), new Buffer('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9lWVVnBeVwEml703J0byLmBtmCX6iU/XQ9Q8aHfkIrE5pp5fa3SwFkJRKboSeH7tzccU9/dvngCZW4dX0SbhTDZx9qNar69kOBhJNkn8vbFch8dDknn9qEWfK+WDZb/Wvqi0lZzN3cqlEyObOuFmyWiMdnsqHNXT/mCJchT847wIDAQAB','base64'));
+
+	sig.generateSignature(name,sigInfo,content);
+	
+	var co = new require('./ContentObject').ContentObject(sig,name,sigInfo,content);
+	
+	var buffer = this.encodeContentObject(co);
+	
+	fs.writeFile(_filename);
+	
+}
+
+
+var Encoder = new Encoder();
+
+var file = Encoder.decodeFile('/Users/eastman/Desktop/CCN/ccnx-0.5.0rc1/hello');
+
+
diff --git a/src-old/InterestMessageEncoder.js b/src-old/InterestMessageEncoder.js
new file mode 100644
index 0000000..ba90934
--- /dev/null
+++ b/src-old/InterestMessageEncoder.js
@@ -0,0 +1,234 @@
+// JavaScript Document
+/*
+	InterestMessageEncoder is used to convert XML Interest Message into Binary Interest Message.
+	@author: Meki Cherkaoui
+	
+*/
+var DTAGS = require('./TAG').d;
+var TT = require('./TAG').tt;
+
+
+/*
+	Constructor for the IME
+*/
+var InterestMessageEncoder = function InterestMessageEncoder(){
+	
+	
+};
+
+/*
+	TT bits specify the type of nodes
+
+*/
+var CCN_TT_BITS=3;
+var CCN_TT_MASK=((1 << CCN_TT_BITS) - 1);
+var CCN_MAX_TINY=((1 << (7-CCN_TT_BITS)) - 1);
+var CCN_TT_HBIT=((1 << 7));
+
+
+/*
+	Encode function takes in a content object and returs a buffer containing the whole binary encoding.
+	
+*/
+Encoder.prototype.encodeContentObject = function(_ContentObject){
+	
+	
+	var i = 0;
+	
+	
+	
+	/*
+		This function will add a Tag to the buffer
+		The number is the dtag number and tt is the tag type
+		http://www.ccnx.org/documentation/protocol/ccnx-protocol-2/ccnx-binary-encoding-ccnb/
+	
+	*/
+	var addTagToBuffer = function(buffer,number,tt){
+		
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & DTAGS.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		var index = 1;
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT | DTAGS.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer.write(splitNumbers[j]);
+		}
+		
+	};
+	
+	//NOTE NUMBETR= SIZE
+	var addToBuffer = function(buffer,data,tt){
+		
+		var number = sizeof(data);
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~DTAGS.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT | DTAGS.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+		for(i=0;i<data.length;i++){
+			buffer[index+i] = data[i];
+		}
+		
+	};
+	
+	
+	/*
+		Add tag to buffer:
+			
+		
+	*/
+	var addName = function(buffer,name){
+		
+		for(i=0;i<name.size;i++){
+			tt = require('./TAG').tt.CCN_BLOB ;
+			addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+			addCloseTag(buffer);
+		}
+		
+	};
+	
+	
+	var addCloseTag = function(buffer){
+		var tag = DTAGS.CCN_CLOSE;
+		buffer.write(tag);
+	}; 
+	
+	var buffer = new Buffer(1000);
+	 
+	var tag = DTAGS.CCN_DTAG_ContentObject;
+	var tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_Signature;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_SignatureBits;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tt = TT.CCN_BLOB ;
+	addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_Name;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+
+	addName(buffer,_ContentObject.moName,tt);
+
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_SignedInfo;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+	tag = DTAGS.CCN_DTAG_PublisherPublicKeyDigest;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msPublisherPublicKeyDigest ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Timestamp;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msTimestamp ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_KeyLocator;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tag = DTAGS.CCN_DTAG_key;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msKeyLocator ,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Content;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.msContent,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+
+
+	return buffer;
+}
+
+
+Encoder.prototype.encodeToFile = function(_filename){
+	
+	
+	var content = "hello world";
+	
+	var name = new require('./Name').Name(['hello']);
+	
+	var sigInfo = new require('./SignatureInfo').SignatureInfo(new Buffer('h7exThsbBBViA/knAnWd2lMdaAgW/lcI6EIAK6ln4Ut8/owZ0tobVQ4YJ3lHkl3qwzldAqLT8RayMU8cxpqrT6sa/nHFatbiObj2GrAAKbsJRSiV/ESzeVXPUHdbNJ75iDc5wjqvC4aJL8tGJt8vAOjJ7fy4MWD+mgFBYqn+1bw='));
+	
+	var sig = new require('./Signature').Signature(new Buffer("IEh0BFqfrJjrt9+txLvRqxWm5AZTScbIOoRghE6rMYU=",'base64'), new Buffer('BPMrnKOi','base64'), new Buffer('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9lWVVnBeVwEml703J0byLmBtmCX6iU/XQ9Q8aHfkIrE5pp5fa3SwFkJRKboSeH7tzccU9/dvngCZW4dX0SbhTDZx9qNar69kOBhJNkn8vbFch8dDknn9qEWfK+WDZb/Wvqi0lZzN3cqlEyObOuFmyWiMdnsqHNXT/mCJchT847wIDAQAB','base64'));
+
+	sig.generateSignature(name,sigInfo,content);
+	
+	var co = new require('./ContentObject').ContentObject(sig,name,sigInfo,content);
+	
+	var buffer = this.encodeContentObject(co);
+	
+	fs.writeFile(_filename);
+	
+	
+}
+
+
+var InterestMessageEncoder = new InterestMessageEncoder();
+
+var file = InterestMessageEncoder.encodeToFile('/Users/eastman/Desktop/CCN/ccnx-0.5.0rc1/hello');
+
+
diff --git a/src-old/InterestMessageEncodingTest.js b/src-old/InterestMessageEncodingTest.js
new file mode 100644
index 0000000..a5c843d
--- /dev/null
+++ b/src-old/InterestMessageEncodingTest.js
@@ -0,0 +1,235 @@
+// JavaScript Document
+/*
+	InterestMessageEncoder is used to convert XML Interest Message into Binary Interest Message.
+	@author: Meki Cherkaoui
+	
+*/
+var DTAGS = require('./TAG').d;
+var TT = require('./TAG').tt;
+
+
+
+/*
+	Constructor for the IME
+*/
+var InterestMessageEncoder = function InterestMessageEncoder(){
+	
+	
+};
+
+/*
+	TT bits specify the type of nodes
+
+*/
+var CCN_TT_BITS=3;
+var CCN_TT_MASK=((1 << CCN_TT_BITS) - 1);
+var CCN_MAX_TINY=((1 << (7-CCN_TT_BITS)) - 1);
+var CCN_TT_HBIT=((1 << 7));
+
+
+/*
+	Encode function takes in a content object and returs a buffer containing the whole binary encoding.
+	
+*/
+InterestMessageEncoder.prototype.encodeContentObject = function(_InterestMessage){
+	
+	
+	var i = 0;
+	
+	
+	
+	/*
+		This function will add a Tag to the buffer
+		The number is the dtag number and tt is the tag type
+		http://www.ccnx.org/documentation/protocol/ccnx-protocol-2/ccnx-binary-encoding-ccnb/
+	
+	*/
+	var addTagToBuffer = function(buffer,number,tt){
+		
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & DTAGS.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		var index = 1;
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT | DTAGS.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer.write(splitNumbers[j]);
+		}
+		
+	};
+	
+	//NOTE NUMBETR= SIZE
+	var addToBuffer = function(buffer,data,tt){
+		
+		var number = sizeof(data);
+		var sizeOfBuffer = 1+8*((sizeof(number)+6)/7);
+		
+		splitNumbers = new Buffer(sizeOfBuffer);
+		
+		number >>= 7-CCN_TT_BITS;
+		
+		splitNumbers.write((CCN_TT_HBIT & ~DTAGS.CCN_CLOSE) |
+  			((number & CCN_MAX_TINY) << CCN_TT_BITS) |
+  			(CCN_TT_MASK & tt));
+		
+		
+		while(number>0){
+			splitNumbers.write( number & ~CCN_TT_HBIT | DTAGS.CCN_CLOSE);
+			index++;
+			number>>=7;
+		}
+		
+		for( i=0, j=sizeofBuffer-1;i <sizeOfBuffer;i++,j--) {
+		
+			buffer[index+i] = splitNumbers[j];
+		}
+		
+		for(i=0;i<data.length;i++){
+			buffer[index+i] = data[i];
+		}
+		
+	};
+	
+	
+	/*
+		Add tag to buffer:
+			
+		
+	*/
+	var addName = function(buffer,name){
+		
+		for(i=0;i<name.size;i++){
+			tt = require('./TAG').tt.CCN_BLOB ;
+			addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+			addCloseTag(buffer);
+		}
+		
+	};
+	
+	
+	var addCloseTag = function(buffer){
+		var tag = DTAGS.CCN_CLOSE;
+		buffer.write(tag);
+	}; 
+	
+	var buffer = new Buffer(1000);
+	 
+	var tag = DTAGS.CCN_DTAG_ContentObject;
+	var tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_Signature;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	
+	tag = DTAGS.CCN_SignatureBits;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tt = TT.CCN_BLOB ;
+	addToBufferData(buffer,_ContentObject.moSignature.SignatureBits,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_Name;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+
+	addName(buffer,_ContentObject.moName,tt);
+
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_SignedInfo;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+
+	tag = DTAGS.CCN_DTAG_PublisherPublicKeyDigest;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msPublisherPublicKeyDigest ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Timestamp;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msTimestamp ,tt);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_KeyLocator;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	tag = DTAGS.CCN_DTAG_key;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.moSignedInfo.msKeyLocator ,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+	
+	tag = DTAGS.CCN_DTAG_Content;
+	tt = TT.CCN_DTAG ;
+	addToBuffer(buffer,tag,tt);
+	
+	addToBufferData(buffer,_ContentObject.msContent,tt);
+	
+	addCloseTag(buffer);
+	
+	addCloseTag(buffer);
+
+
+	return buffer;
+}
+
+
+Encoder.prototype.encodeToFile = function(_filename){
+	
+	
+	var content = "hello world";
+	
+	var name = new require('./Name').Name(['hello']);
+	
+	var sigInfo = new require('./SignatureInfo').SignatureInfo(new Buffer('h7exThsbBBViA/knAnWd2lMdaAgW/lcI6EIAK6ln4Ut8/owZ0tobVQ4YJ3lHkl3qwzldAqLT8RayMU8cxpqrT6sa/nHFatbiObj2GrAAKbsJRSiV/ESzeVXPUHdbNJ75iDc5wjqvC4aJL8tGJt8vAOjJ7fy4MWD+mgFBYqn+1bw='));
+	
+	var sig = new require('./Signature').Signature(new Buffer("IEh0BFqfrJjrt9+txLvRqxWm5AZTScbIOoRghE6rMYU=",'base64'), new Buffer('BPMrnKOi','base64'), new Buffer('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9lWVVnBeVwEml703J0byLmBtmCX6iU/XQ9Q8aHfkIrE5pp5fa3SwFkJRKboSeH7tzccU9/dvngCZW4dX0SbhTDZx9qNar69kOBhJNkn8vbFch8dDknn9qEWfK+WDZb/Wvqi0lZzN3cqlEyObOuFmyWiMdnsqHNXT/mCJchT847wIDAQAB','base64'));
+
+	sig.generateSignature(name,sigInfo,content);
+	
+	var co = new require('./ContentObject').ContentObject(sig,name,sigInfo,content);
+	
+	var buffer = this.encodeContentObject(co);
+	
+	fs.writeFile(_filename);
+	
+	
+}
+
+
+var InterestMessageEncoder = new InterestMessageEncoder();
+
+var file = InterestMessageEncoder.encodeToFile('/Users/eastman/Desktop/CCN/ccnx-0.5.0rc1/hello');
+
+
diff --git a/src-old/Name.js b/src-old/Name.js
new file mode 100644
index 0000000..6882f0e
--- /dev/null
+++ b/src-old/Name.js
@@ -0,0 +1,6 @@
+// JavaScript Document
+var Name = function Name(_Component){
+	this.Component = _Component;
+};
+
+exports.Name = Name;
\ No newline at end of file
diff --git a/src-old/Signature.js b/src-old/Signature.js
new file mode 100644
index 0000000..2d1d878
--- /dev/null
+++ b/src-old/Signature.js
@@ -0,0 +1,8 @@
+// JavaScript Document
+var Signature = function(_DigestAlgorithm, _Witness, _SignatureBits){
+	this.DigestAlgorithm = _DigestAlgorithm;
+	this.Witness = _Witness;
+	this.SignatureBits = _SignatureBits;
+}
+
+exports.Signature = Signature;
\ No newline at end of file
diff --git a/src-old/SignedInfo.js b/src-old/SignedInfo.js
new file mode 100644
index 0000000..dcc083f
--- /dev/null
+++ b/src-old/SignedInfo.js
@@ -0,0 +1,12 @@
+// JavaScript Document
+var SignedInfo = function SignedInfo(_PublisherPublicKeyDigest,_Timestamp,_Type,  _KeyLocator,_FreshnessSeconds,_FinalBlockID){
+	
+	this.PublisherPublicKeyDigest = _PublisherPublicKeyDigest;
+	this.Timestamp = _Timestamp;
+	this.FreshnessSeconds = _FinalBlockID;
+	this.FinalBlockID = _FinalBlockID;
+	this.KeyLocator= _KeyLocator;
+}
+
+exports.SignedInfo = SignedInfo;
+
diff --git a/src-old/TAG.js b/src-old/TAG.js
new file mode 100644
index 0000000..d95c610
--- /dev/null
+++ b/src-old/TAG.js
@@ -0,0 +1,113 @@
+// JavaScript Document
+
+
+//d are the dictionnary tags
+exports.tt= {
+  CCN_EXT : 0x00,
+  CCN_TAG : 0x01,
+  CCN_DTAG : 0x02,
+  CCN_ATTR : 0x03,
+  CCN_DATTR : 0x04,
+  CCN_BLOB : 0x05,
+  CCN_UDATA : 0x06
+};
+
+//d are the dictionnary tags
+exports.dtags= {
+  CCN_CLOSE :0,
+  CCN_DTAG_Any : 13,
+  CCN_DTAG_Name : 14,
+  CCN_DTAG_Component : 15,
+  CCN_DTAG_Certificate : 16,
+  CCN_DTAG_Collection : 17,
+  CCN_DTAG_CompleteName : 18,
+  CCN_DTAG_Content : 19,
+  CCN_DTAG_SignedInfo : 20,
+  CCN_DTAG_ContentDigest : 21,
+  CCN_DTAG_ContentHash : 22,
+  CCN_DTAG_Count : 24,
+  CCN_DTAG_Header : 25,
+  CCN_DTAG_Interest : 26,	/* 20090915 */
+  CCN_DTAG_Key : 27,
+  CCN_DTAG_KeyLocator : 28,
+  CCN_DTAG_KeyName : 29,
+  CCN_DTAG_Length : 30,
+  CCN_DTAG_Link : 31,
+  CCN_DTAG_LinkAuthenticator : 32,
+  CCN_DTAG_NameComponentCount : 33,	/* DeprecatedInInterest */
+  CCN_DTAG_RootDigest : 36,
+  CCN_DTAG_Signature : 37,
+  CCN_DTAG_Start : 38,
+  CCN_DTAG_Timestamp : 39,
+  CCN_DTAG_Type : 40,
+  CCN_DTAG_Nonce : 41,
+  CCN_DTAG_Scope : 42,
+  CCN_DTAG_Exclude : 43,
+  CCN_DTAG_Bloom : 44,
+  CCN_DTAG_BloomSeed : 45,
+  CCN_DTAG_AnswerOriginKind : 47,
+  CCN_DTAG_InterestLifetime : 48,
+  CCN_DTAG_Witness : 53,
+  CCN_DTAG_SignatureBits : 54,
+  CCN_DTAG_DigestAlgorithm : 55,
+  CCN_DTAG_BlockSize : 56,
+  CCN_DTAG_FreshnessSeconds : 58,
+  CCN_DTAG_FinalBlockID : 59,
+  CCN_DTAG_PublisherPublicKeyDigest : 60,
+  CCN_DTAG_PublisherCertificateDigest : 61,
+  CCN_DTAG_PublisherIssuerKeyDigest : 62,
+  CCN_DTAG_PublisherIssuerCertificateDigest : 63,
+  CCN_DTAG_ContentObject : 64,	/* 20090915 */
+  CCN_DTAG_WrappedKey : 65,
+  CCN_DTAG_WrappingKeyIdentifier : 66,
+  CCN_DTAG_WrapAlgorithm : 67,
+  CCN_DTAG_KeyAlgorithm : 68,
+  CCN_DTAG_Label : 69,
+  CCN_DTAG_EncryptedKey : 70,
+  CCN_DTAG_EncryptedNonceKey : 71,
+  CCN_DTAG_WrappingKeyName : 72,
+  CCN_DTAG_Action : 73,
+  CCN_DTAG_FaceID : 74,
+  CCN_DTAG_IPProto : 75,
+  CCN_DTAG_Host : 76,
+  CCN_DTAG_Port : 77,
+  CCN_DTAG_MulticastInterface : 78,
+  CCN_DTAG_ForwardingFlags : 79,
+  CCN_DTAG_FaceInstance : 80,
+  CCN_DTAG_ForwardingEntry : 81,
+  CCN_DTAG_MulticastTTL : 82,
+  CCN_DTAG_MinSuffixComponents : 83,
+  CCN_DTAG_MaxSuffixComponents : 84,
+  CCN_DTAG_ChildSelector : 85,
+  CCN_DTAG_RepositoryInfo : 86,
+  CCN_DTAG_Version : 87,
+  CCN_DTAG_RepositoryVersion : 88,
+  CCN_DTAG_GlobalPrefix : 89,
+  CCN_DTAG_LocalName : 90,
+  CCN_DTAG_Policy : 91,
+  CCN_DTAG_Namespace : 92,
+  CCN_DTAG_GlobalPrefixName : 93,
+  CCN_DTAG_PolicyVersion : 94,
+  CCN_DTAG_KeyValueSet : 95,
+  CCN_DTAG_KeyValuePair : 96,
+  CCN_DTAG_IntegerValue : 97,
+  CCN_DTAG_DecimalValue : 98,
+  CCN_DTAG_StringValue : 99,
+  CCN_DTAG_BinaryValue : 100,
+  CCN_DTAG_NameValue : 101,
+  CCN_DTAG_Entry : 102,
+  CCN_DTAG_ACL : 103,
+  CCN_DTAG_ParameterizedName : 104,
+  CCN_DTAG_Prefix : 105,
+  CCN_DTAG_Suffix : 106,
+  CCN_DTAG_Root : 107,
+  CCN_DTAG_ProfileName : 108,
+  CCN_DTAG_Parameters : 109,
+  CCN_DTAG_InfoString : 110,
+  CCN_DTAG_StatusResponse : 112,
+  CCN_DTAG_StatusCode : 113,
+  CCN_DTAG_StatusText : 114,
+  CCN_DTAG_Nack : 200,
+  CCN_DTAG_SequenceNumber : 256,
+  CCN_DTAG_CCNProtocolDataUnit : 17702112
+};
\ No newline at end of file
diff --git a/src-old/TextXMLEncoder.js b/src-old/TextXMLEncoder.js
new file mode 100644
index 0000000..402022d
--- /dev/null
+++ b/src-old/TextXMLEncoder.js
@@ -0,0 +1,18 @@
+/*
+	
+ */
+
+
+/**
+ * An implementation of XMLEncoder for the Text codec. 
+ * 
+ * @see TextXMLCodec
+ * @see XMLEncoder
+ */
+var TextXMLEncoder = function TextXMLEncoder(){
+	
+	
+	
+};
+
+