             guard !closed else {
                 return
             }
-            if let accepted =  try (self.socket as! ServerSocket).accept() {
+            if let accepted =  try self.socket.accept() {
                 do {
                     pipeline.fireChannelRead0(data: try SocketChannel(socket: accepted, eventLoop: group.next() as! SelectableEventLoop))
                 } catch let err {

            throw err
        }
        self.group = group
        super.init(socket: serverSocket, eventLoop: eventLoop)
    }

    override fileprivate func setOption0<T: ChannelOption>(option: T, value: T.OptionType) throws {

    }
    
    override fileprivate func connectSocket(remote: SocketAddress) throws -> Bool {
        return try self.socket.connect(remote: remote)
    }
    
    override fileprivate func finishConnectSocket() throws {
        try self.socket.finishConnect()
    }
}

