protected function processStack(){

		do{

			do {
				$status = curl_multi_exec($this->curl_multi, $active);
			}
			while($status === CURLM_CALL_MULTI_PERFORM);

			// welcome to callback hell.
			while($state = curl_multi_info_read($this->curl_multi)){
				$url = $this->multiResponseHandler->handleResponse(new MultiResponse($state['handle']));

				if($url instanceof URL){
					$this->stack[] = $url;
				}

				curl_multi_remove_handle($this->curl_multi, $state['handle']);
				curl_close($state['handle']);
				$this->createHandle();
			}

			if($active){
				curl_multi_select($this->curl_multi, $this->options->timeout);
			}

		}
		while($active && $status === CURLM_OK);

	}