         metricDict[vflKey(number)] = number
         self.format = key
     }
+    
+}
 
+private extension VFLComponent {
+    var isWrapped: Bool {
+        return self.format.hasPrefix("(") && self.format.hasSuffix(")")
+    }
 }
 
 // MARK: - operators

    }
    return result
}

/// usage: let constraints = NSLayoutConstraints(H:|-[view1]-(>=5)-[view2]-3-|)
extension Array where Element: NSLayoutConstraint {
    public init(H: VFLComponent, options: NSLayoutFormatOptions = []) {
        self = NSLayoutConstraint.constraints(withVisualFormat: "H:" + H.format, options: options, metrics: H.metricDict, views: H.viewDict) as! [Element]

postfix operator |
postfix operator -|

// used for UILayoutPriority
infix operator .~: MultiplicationPrecedence

public struct VFLComponent: ExpressibleByArrayLiteral, ExpressibleByDictionaryLiteral, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral {
    public var format = ""
    
    // ExpressibleByArrayLiteral
    var viewDict = [String: UIView]()
    public typealias Element = UIView
    public init(arrayLiteral elements: Element...) {
        guard elements.count == 1 else {
