public boolean initialize(String domain,String _rootFolder){
		boolean result;
		
		try {
			
			if (!domain.startsWith("/")){
				if(domain.startsWith("ccnx:")){
					domain = domain.substring(5);
				}
			}
			else{
				Log.severe("strings must begin with a / or ccnx:/");
				return false;
			}
			_namespace = ContentName.fromNative(domain);
		} catch (MalformedContentNameStringException e) {
			Log.severe("Could not register given domain" + domain);
			e.printStackTrace();
			return false;
		}
			
		try {
			_incomingHandle = CCNHandle.open();
			_outgoingHandle = CCNHandle.open();
		} catch (ConfigurationException e2) {
			Log.severe("ConfigurationException occured while opening handle");
			e2.printStackTrace();
		} catch (IOException e2) {
			Log.severe("IOException occured while opening handle");
			e2.printStackTrace();
		}
		
		//Create the content store. Which provides the list of available content
		_contentStore = new CCNxMallContentStore(_rootFolder);
		
		
		//Register Content Response Handler
		_contentInterestResponder = new CCNxMallInterestHandler(_incomingHandle,_namespace, _rootFolder);
		try {
			_incomingHandle.registerFilter(_namespace, _contentInterestResponder);
		} catch (IOException e1) {
			Log.severe("Could not register the _contentInterestResponder to the network");
			e1.printStackTrace();
			return false;
		}
		
		//Register NameEnumurator
		try {
			result = _networkHandler.setupNetwork(_incomingHandle,_outgoingHandle);
			if(!result){
				Log.severe("Could not setup Network");
				return false;
			}		
			_networkHandler.registerNames(_namespace,_contentStore.getContentList());

			
		} catch (IOException e) {
			Log.severe("Could not expose available content to the CCNx network.");
			e.printStackTrace();
			return false;
		}
		
		//Initialize _contentCollector
		_contentCollector = new CCNxMallContentHandler(_outgoingHandle,_rootFolder);

		Log.info("Registered Namespace {0} successfully",domain);
		return true;
	}