public function setStatus($status_line)
	{
		$status_parts = explode(' ', $status_line, 3);
		$parts_count  = count($status_parts);

		if ($parts_count < 2 || strpos(strtoupper($status_parts[0]), 'HTTP/') !== 0) {
			throw new InvalidArgumentException("'$status_line' is not a valid HTTP status line");
		}

		$reason_phrase = ($parts_count > 2 ? $status_parts[2] : '');

		$this->response = $this->response
			->withStatus((int)$status_parts[1], $reason_phrase)
			->withProtocolVersion(substr($status_parts[0], 5));

		return $this;
	}