     
     let hostName: String
     let port: Int32
+    var configByte: UInt8 = 0
+    var socket: Socket?
     
-    var socket: Socket?
+    public var dithering: Bool = true {
+        didSet {
+            if dithering {
+                configByte &= ~0x01
+            } else {
+                configByte |= 0x01
+            }
+            sendConfigPackage()
+        }
+    }
+    
+    public var interpolation: Bool = true {
+        didSet {
+            if interpolation {
+                configByte &= ~0x02
+            } else {
+                configByte |= 0x02
+            }
+            sendConfigPackage()
+        }
+    }
     
     public init(hostName: String, port: Int32) {
         self.hostName = hostName

        socket?.close()
    }
    
    public func setPixels(pixels: [PixelColor], channel: UInt8 = 0) {
        guard checkIfConnected() == true else {
            print("Not connected, skipping this command")

        }
        
        let resultBytes: [UInt8] = [channel, command, hiByte, loByte] + pixelBytes
        sendByteArray(bytes: resultBytes)
    }
    
    private func sendByteArray(bytes: [UInt8]) {
        let bytesData = NSData(bytes: bytes, length: bytes.count * sizeof(UInt8))
        do {
            try socket?.write(from: bytesData)
        } catch {
            print("cannot send data")
        }
    }
}
