             } else {
                 return dict.reduce(JSON(), {cur, keyValue in
                     var cur = cur
-                    
+
                     cur[keyValue.0] = _fillInPlaceholders(keyValue.1)
-                    
+
                     return cur
                 })
             }

        let nspString = binaryCountString + (nsp != "/" ? "\(nsp)," : "")
        // Ack number?
        let idString = nspString + (id != -1 ? String(id) : "")
        
        return completeMessage(idString)
    }
    
    // Called when we have all the binary data for a packet
    // calls _fillInPlaceholders, which replaces placeholders with the
    // corresponding binary
    private mutating func fillInPlaceholders() {
        data = data.map(_fillInPlaceholders)
    }
    
    // Helper method that looks for placeholders
    // If object is a collection it will recurse
    // Returns the object if it is not a placeholder or the corresponding

        self.placeholders = placeholders
        self.binary = binary
    }

    mutating func addData(_ data: Data) -> Bool {
        if placeholders == binary.count {
            return true
        }

        binary.append(data)

        if placeholders == binary.count {
            fillInPlaceholders()
            return true
