public void doWork() throws IOException, NoSuchAlgorithmException{
		Iterator<MetaConnection> itor = connections.iterator();
		while(itor.hasNext()){
			//Stand connection loop...
			MetaConnection mc = itor.next();
			if(mc.getConnectionState() == ConnectionState.closed){
				itor.remove();
				System.out.println("ENDED: "+mc);
			}else if(mc.getConnectionState() == ConnectionState.uninitialized){
				mc.blindInitialize(meta);
			}else if(mc.getConnectionState() == ConnectionState.connected){
				//push requests.
				status = "Peer's found. Searching for meta data";
				mc.setAmChoking(false);
				mc.setAmInterested(true);
				mc.doWork(this);
//				if(mc.supportsMetaMetaRequest()){
//					if(mc.getActiveRequests().length<2){//pretty slow but w/e
//						
//						int i = meta.getOpenPiece();
//						if(i!=-1){
//							mc.sendMetaMetaRequest(i);
//						}
////						System.out.println("Asking for piece! "+i+" from "+mc);
//					}
//				}
			}
		}
		DHTtracker.doWork();
		
		
		
		List<MetaConnection> cms = DHTtracker.connections();
		if(cms!=null){
			connections.addAll(cms);
		}
		
		if(connections.size()==0){
			DHTtracker.setAggrsive();
		}
		
		
		if(meta.isComplete()){
			//do something?
			if(meta.shaMatch(hashInfo)){
				complete =true;
			}
			
		}
		
	}