     }
 
     let outData = Array("Greetings earthling".utf8)
-
-    let sent = withUnsafePointer(to: &sockAddress) {
-        $0.withMemoryRebound(to: sockaddr.self, capacity: 1) { ptrSockAddr in
-            sendto(sockFd, outData, outData.count, 0, ptrSockAddr, socklen_t(sockAddress.sin_len))
-        }
-    }
+    let addr = UnsafeMutablePointer<sockaddr_in>(&sockAddress)
+    let ptrSockAddr = UnsafeMutablePointer<sockaddr>(OpaquePointer(addr))
+
+    let sent = sendto(sockFd,
+                    outData,
+                    outData.count,
+                    0,
+                    ptrSockAddr,
+                    socklen_t(sockAddress.sin_len))
     
     if sent == -1 {
         let errmsg = String(cString: strerror(errno))

        guard let source = responseSource else { return }
        
        let addr = UnsafeMutablePointer<sockaddr_storage>.allocate(capacity: 1)
        let addrSockAddr = UnsafeMutablePointer<sockaddr>(OpaquePointer(addr))
        var socketAddressLength = socklen_t(MemoryLayout<sockaddr_storage>.size)
        let response = [UInt8](repeating: 0, count: 4096)
        let UDPSocket = Int32(source.handle)

                                 UnsafeMutableRawPointer(mutating: response),
                                 response.count,
                                 0,
                                 ptrSockAddr,
                                 &socketAddressLength)
        
        let dataRead = response[0..<bytesRead]
