private void loadConfiguration(){
		/* Set current working directory */
		_currentWorkingDirectory = System.getProperty("user.dir");
		/* Set Data Directory */
		 _dataDirectory =_currentWorkingDirectory+"/"+"peer_"+_ID;
		/* Set Temporary Directory */
		 _tempDirectory=_dataDirectory+"/"+"temp";
		
		Properties prop = new Properties();
		/* Loading properties from Common.cfg */
	    String fileName = _currentWorkingDirectory+ "/" + "Common.cfg";
	    InputStream is;
		try {
			is = new FileInputStream(fileName);
			prop.load(is);
			_noOfPreferredNeighbors = Integer.parseInt(prop.getProperty("NumberOfPreferredNeighbors"));
			_unchokingInterval = Integer.parseInt(prop.getProperty("UnchokingInterval"));
			_optimisticUnchokingInterval = Integer.parseInt(prop.getProperty("OptimisticUnchokingInterval"));
			_fileName = prop.getProperty("FileName");
			_fileSize = Integer.parseInt(prop.getProperty("FileSize"));
			_pieceSize = Integer.parseInt(prop.getProperty("PieceSize"));
			//logger.info("_noOfPreferredNeighbors" +" "+"_unchokingInterval"+" "+" _optimisticUnchokingInterval"+" "+"_fileName"+" "+"_fileSize"+" "+"_pieceSize");
			//logger.info(_noOfPreferredNeighbors +" "+_unchokingInterval+" "+ _optimisticUnchokingInterval+" "+_fileName+" "+_fileSize+" "+_pieceSize);
		} catch (FileNotFoundException e) {
			logger.info(e);
			
		} catch (IOException e) {
			logger.info(e);
			
		}
		/* Set maximum number of connections */
		synchronized(this) {
		_connections = new Vector<Connection>(_noOfPreferredNeighbors);
		}
		/* Loading properties from PeerInfo.cfg */
		fileName = _currentWorkingDirectory+ "/" + "PeerInfo.cfg";
		try {
			FileInputStream fstream = new FileInputStream(fileName);
			DataInputStream in = new DataInputStream(fstream);
			BufferedReader br = new BufferedReader(new InputStreamReader(in));
			String strLine;
			  
			while ((strLine = br.readLine()) != null)   {
			   
				StringTokenizer st  = new StringTokenizer(strLine);
				while(st.hasMoreTokens()){
					String _peerID = st.nextToken();
					String _host = st.nextToken();
					int _port = Integer.parseInt(st.nextToken());
					Boolean _hasCompleteFile;
					if(Integer.parseInt(st.nextToken())==1){
					  _hasCompleteFile = true;
					}
					else {
					  _hasCompleteFile = false;
					}
					//logger.info(_peerID+" "+_host+" "+ _port+" "+_hasCompleteFile);
					if(_peerID.equals(_ID)){
						host = _host;
						port = _port;
						peerProcess._hasCompleteFile = _hasCompleteFile;
					}
					else{
					
			      final Connection c1 = new Connection(_peerID,_host,_port,_hasCompleteFile);
					_peerList.add(c1);
					_connectionMap.put(c1.get_peerID(),c1);
					}
				}
			
			}
			in.close();
		} catch (FileNotFoundException e) {
			logger.info(e);
			e.printStackTrace();
		} catch (IOException e) {
			logger.info(e);
			e.printStackTrace();
		}
		
	    
	}