 	public func disconnect() {
 		TCPSocket.workingThread.perform {
 			self.disposeStreams()
-			self.status = .closed
+			self.status = .closed(nil)
 			self.delegateQueue?.async {
 				self.delegate?.socketDidDisconnect(self)
 			}

	
	public init(with config: Config) {
		self.config = config
		self.status = .closed
		inputStreamDelegate = StreamDelegate(cInputStream)
		outputStreamDelegate = StreamDelegate(cOutputStream)
	}

	}
	
	private func handleOpenning() {
		guard case .opening = status, inputStream!.streamStatus == .open, outputStream!.streamStatus == .open else {
			return
		}
		status = .opened
