         }
     }
 
-    func get(key: String) throws -> Data? {
+    public func get(key: String) throws -> Data? {
         try self.connect()
         return try self.send(command: .Get(key: key)).details.first
     }
 
-    func delete(key: String) throws {
+    public func delete(key: String) throws {
         try self.connect()
         try self.send(command: .Delete(key: key))
     }
 
-    func hashSet(name: String, key: String, value: Data) throws {
+    public func hashSet(name: String, key: String, value: Data) throws {
         try self.connect()
         let response = try self.send(command: .HashSet(name: name, key: key, value: value))
         guard response.isOK else {

        )
    }

    func set(key: String, value: Data) throws {
        try self.connect()
        let response = try self.send(command: .Set(key: key, value: value))
        guard response.isOK else {

        return self.connection!
    }

    @discardableResult public func send(
        command: Data,
        to connection: TCPClient? = nil,
        description: String? = nil,
